From: Alan Cox Date: Fri, 28 Sep 2012 11:20:02 +0000 (+0100) Subject: key: Fix resource leak X-Git-Tag: v3.2.43~27 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fe2e7c989d397460ce1df3ee7ba3aa8730d760b7;p=thirdparty%2Fkernel%2Fstable.git key: Fix resource leak commit a84a921978b7d56e0e4b87ffaca6367429b4d8ff upstream. On an error iov may still have been reallocated and need freeing Signed-off-by: Alan Cox Signed-off-by: David Howells Signed-off-by: Ben Hutchings --- diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c index 0b3f5d72af1ce..b70eaa27f8970 100644 --- a/security/keys/keyctl.c +++ b/security/keys/keyctl.c @@ -1067,12 +1067,12 @@ long keyctl_instantiate_key_iov(key_serial_t id, ret = rw_copy_check_uvector(WRITE, _payload_iov, ioc, ARRAY_SIZE(iovstack), iovstack, &iov, 1); if (ret < 0) - return ret; + goto err; if (ret == 0) goto no_payload_free; ret = keyctl_instantiate_key_common(id, iov, ioc, ret, ringid); - +err: if (iov != iovstack) kfree(iov); return ret;