flask: fix memory leaks Plus, in the case of security_preserve_bools(), prevent double freeing in the case of security_get_bools() failing. Signed-off-by: Jan Beulich --- a/xen/xsm/flask/flask_op.c +++ b/xen/xsm/flask/flask_op.c @@ -347,6 +347,7 @@ static int flask_security_set_bool(struc if ( arg->bool_id >= num ) { + xfree(values); rv = -ENOENT; goto out; } --- a/xen/xsm/flask/ss/services.c +++ b/xen/xsm/flask/ss/services.c @@ -1902,6 +1902,7 @@ err: { for ( i = 0; i < *len; i++ ) xfree((*names)[i]); + xfree(*names); } xfree(*values); goto out; @@ -2011,7 +2012,7 @@ static int security_preserve_bools(struc rc = security_get_bools(&nbools, &bnames, &bvalues, NULL); if ( rc ) - goto out; + return rc; for ( i = 0; i < nbools; i++ ) { booldatum = hashtab_search(p->p_bools.table, bnames[i]);