X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=security%2Fselinux%2Fss%2Fservices.c;h=876b815c1ba4e785094f449320a62a7709abc482;hb=ab2b49518e743962f71b94246855c44ee9cf52cc;hp=4f233d9960e7073b90786095b94f760617c9ad9f;hpb=f058925b201357fba48d56cc9c1719ae274b2022;p=linux-2.6-omap-h63xx.git diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index 4f233d9960e..876b815c1ba 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c @@ -981,11 +981,12 @@ static int string_to_context_struct(struct policydb *pol, /* Check the validity of the new context. */ if (!policydb_context_isvalid(pol, ctx)) { rc = -EINVAL; - context_destroy(ctx); goto out; } rc = 0; out: + if (rc) + context_destroy(ctx); return rc; } @@ -1038,8 +1039,7 @@ static int security_context_to_sid_core(const char *scontext, u32 scontext_len, } else if (rc) goto out; rc = sidtab_context_to_sid(&sidtab, &context, sid); - if (rc) - context_destroy(&context); + context_destroy(&context); out: read_unlock(&policy_rwlock); kfree(scontext2);