From: David Safford <safford@watson.ibm.com>
To: Jesper Juhl <jj@chaosbits.net>
Cc: David Howells <dhowells@redhat.com>,
David Safford <safford@us.ibm.com>,
James Morris <jmorris@namei.org>,
keyrings@linux-nfs.org, linux-security-module@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Trusted and Encrypted Keys: fix up TSS_rawhmac() so we always kfree() and remember to call va_end()
Date: Fri, 14 Jan 2011 08:28:02 -0500 [thread overview]
Message-ID: <1295011682.7804.2.camel@localhost.localdomain> (raw)
In-Reply-To: <alpine.LNX.2.00.1101132100190.11347@swampdragon.chaosbits.net>
On Thu, 2011-01-13 at 21:07 +0100, Jesper Juhl wrote:
> In security/keys/trusted_defined.c::TSS_rawhmac() we may leak the storage
> allocated to 'sdesc' if
> data = va_arg(argp, unsigned char *);
> results in a NULL 'data' and we then leave the function by returning
> -EINVAL. We also neglect calling va_end(argp) in that case and furthermore
> we neglect va_end(argp) if
> ret = crypto_shash_update(&sdesc->shash, data, dlen);
> results in ret being negative and we then jump to the 'out' label.
>
> I believe this patch takes care of these issues. Please review and
> consider for inclusion.
>
> Signed-off-by: Jesper Juhl <jj@chaosbits.net>
thanks for catching this.
Acked-by: David Safford <safford@watson.ibm.com>
> ---
> trusted_defined.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> compile tested only.
>
> diff --git a/security/keys/trusted_defined.c b/security/keys/trusted_defined.c
> index 975e9f2..0ec7ab8 100644
> --- a/security/keys/trusted_defined.c
> +++ b/security/keys/trusted_defined.c
> @@ -101,16 +101,18 @@ static int TSS_rawhmac(unsigned char *digest, const unsigned char *key,
> if (dlen == 0)
> break;
> data = va_arg(argp, unsigned char *);
> - if (data == NULL)
> - return -EINVAL;
> + if (data == NULL) {
> + ret = -EINVAL;
> + goto out;
> + }
> ret = crypto_shash_update(&sdesc->shash, data, dlen);
> if (ret < 0)
> goto out;
> }
> - va_end(argp);
> if (!ret)
> ret = crypto_shash_final(&sdesc->shash, digest);
> out:
> + va_end(argp);
> kfree(sdesc);
> return ret;
> }
>
>
>
next prev parent reply other threads:[~2011-01-14 13:28 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-13 20:07 [PATCH] Trusted and Encrypted Keys: fix up TSS_rawhmac() so we always kfree() and remember to call va_end() Jesper Juhl
2011-01-14 13:28 ` David Safford [this message]
2011-01-14 13:45 ` [PATCH] Trusted and Encrypted Keys: fix up TSS_rawhmac() so wealways " Tetsuo Handa
2011-01-14 14:07 ` Tetsuo Handa
2011-01-15 0:58 ` Tetsuo Handa
2011-01-16 14:04 ` Jesper Juhl
2011-01-17 0:39 ` [PATCH 1/3] trusted-keys: another free memory bugfix Tetsuo Handa
2011-01-17 0:41 ` [PATCH 2/3] trusted-keys: check for NULL before using it Tetsuo Handa
2011-01-17 0:44 ` [PATCH 3/3] trusted-keys: avoid scattring va_end() Tetsuo Handa
2011-01-17 9:39 ` David Howells
2011-01-17 18:36 ` Jesper Juhl
2011-01-17 21:06 ` Mimi Zohar
2011-01-18 1:39 ` [PATCH 3/3] trusted-keys: small cleanup Tetsuo Handa
2011-01-18 9:26 ` Mimi Zohar
2011-01-18 11:03 ` Tetsuo Handa
2011-01-18 11:28 ` Mimi Zohar
2011-01-18 11:42 ` Mimi Zohar
2011-01-17 9:34 ` [PATCH 2/3] trusted-keys: check for NULL before using it David Howells
2011-01-17 18:35 ` Jesper Juhl
2011-01-17 21:02 ` Mimi Zohar
2011-01-17 9:33 ` [PATCH 1/3] trusted-keys: another free memory bugfix David Howells
2011-01-17 18:34 ` Jesper Juhl
2011-01-17 21:01 ` Mimi Zohar
2011-01-18 22:55 ` James Morris
2011-01-14 13:31 ` [PATCH] Trusted and Encrypted Keys: fix up TSS_rawhmac() so we always kfree() and remember to call va_end() David Howells
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1295011682.7804.2.camel@localhost.localdomain \
--to=safford@watson.ibm.com \
--cc=dhowells@redhat.com \
--cc=jj@chaosbits.net \
--cc=jmorris@namei.org \
--cc=keyrings@linux-nfs.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=safford@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.