From: Bruno Meneguele <bmeneg@redhat.com>
To: Ken Goldman <kgold@linux.ibm.com>
Cc: Mimi Zohar <zohar@linux.ibm.com>,
vt@altlinux.org, linux-integrity@vger.kernel.org
Subject: Re: [PATCH ima-evm-utils] evmctl: fix memory leak in get_password
Date: Mon, 16 Aug 2021 12:10:25 -0300 [thread overview]
Message-ID: <YRp/4Wnr7GYN1Ef4@glitch> (raw)
In-Reply-To: <b8d5fdd1-ffc0-4db4-4993-a31da2c3140c@linux.ibm.com>
On Wed, Aug 11, 2021 at 02:28:37PM -0400, Ken Goldman wrote:
> On 8/11/2021 1:31 PM, Mimi Zohar wrote:
> > On Wed, 2021-08-11 at 13:51 -0300, Bruno Meneguele wrote:
> > > On Wed, Aug 11, 2021 at 10:52:00AM -0400, Mimi Zohar wrote:
> > >
> > > > >
> > > > > - return pwd;
> > > > > + return password;
> > > >
> > > > Wouldn't a simpler fix be to test "pwd" here?
> > > > if (!pwd)
> > > > free(password);
> > > > return pwd;
> > > >
> > >
> > > The problem is on success, when 'pwd' is actually not NULL.
> > > With that, I can't free(password). I would need to asprintf(pwd, ...) or
> > > strndup(password). Because of that, I thought it would be cleaner to
> > > remove 'password' completely.
> >
> > I see. So instead of "return pwd" as suggested above,
> >
> > if (!pwd) {
> > free(password);
> > password = NULL; <== set or return NULL
> > }
> >
> > return password;
>
> That looks cleaner to me.
>
> My style would be
>
> if (pwd == NULL)
>
> which compiles to the same binary, but it less prone to error.
>
> In addition, since this is reading from stdin
>
> 1 - Do you want the newline to be part of the password?
I would say 'yes'. AFAIK OpenSSL preserves the newline if it's present
in the input from <stdin>:
"The returned string is always NUL-terminated and the '\n' is preserved
if present in the input data" (BIO_gets() manpage from OpenSSL)
Also, if the user passed the password to the PEM file creation through
the arguments list (no newline) it can also do the same with evmctl.
> 2 = Why is an empty password an error?
>
Considering the item 1, I don't think we have an empty string in this
case.
--
bmeneg
PGP Key: http://bmeneg.com/pubkey.txt
prev parent reply other threads:[~2021-08-16 15:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-10 20:28 [PATCH ima-evm-utils] evmctl: fix memory leak in get_password Bruno Meneguele
2021-08-11 14:52 ` Mimi Zohar
2021-08-11 16:51 ` Bruno Meneguele
2021-08-11 17:31 ` Mimi Zohar
2021-08-11 17:52 ` Bruno Meneguele
2021-08-11 18:28 ` Ken Goldman
2021-08-16 15:10 ` Bruno Meneguele [this message]
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=YRp/4Wnr7GYN1Ef4@glitch \
--to=bmeneg@redhat.com \
--cc=kgold@linux.ibm.com \
--cc=linux-integrity@vger.kernel.org \
--cc=vt@altlinux.org \
--cc=zohar@linux.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.