lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20230928193555.GA1908893@mail.hallyn.com>
Date:   Thu, 28 Sep 2023 14:35:55 -0500
From:   "Serge E. Hallyn" <serge@...lyn.com>
To:     John Johansen <john.johansen@...onical.com>
Cc:     Li kunyu <kunyu@...china.com>, paul@...l-moore.com,
        jmorris@...ei.org, serge@...lyn.com, apparmor@...ts.ubuntu.com,
        linux-security-module@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] apparmor/file: Removing unnecessary initial values
 for variable pointers

On Thu, Sep 28, 2023 at 10:36:16AM -0700, John Johansen wrote:
> On 9/18/23 18:56, Li kunyu wrote:
> > These variable pointers are assigned during use and do not need to be
> > initialized for assignment.
> > 
> > Signed-off-by: Li kunyu <kunyu@...china.com>
> > ---
> >   v2: Fix timestamp issues
> > 
> >   security/apparmor/file.c | 4 ++--
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/security/apparmor/file.c b/security/apparmor/file.c
> > index 698b124e649f..12eafdf18fc0 100644
> > --- a/security/apparmor/file.c
> > +++ b/security/apparmor/file.c
> > @@ -264,7 +264,7 @@ int aa_path_perm(const char *op, struct aa_label *label,
> >   {
> >   	struct aa_perms perms = {};
> >   	struct aa_profile *profile;
> > -	char *buffer = NULL;
> > +	char *buffer;
> 
> this is okay
> 
> >   	int error;
> >   	flags |= PATH_DELEGATE_DELETED | (S_ISDIR(cond->mode) ? PATH_IS_DIR :
> > @@ -412,7 +412,7 @@ int aa_path_link(struct aa_label *label, struct dentry *old_dentry,
> >   		d_backing_inode(old_dentry)->i_uid,
> >   		d_backing_inode(old_dentry)->i_mode
> >   	};
> > -	char *buffer = NULL, *buffer2 = NULL;
> > +	char *buffer, *buffer2;
> 
> this can cause an oops if buffer2 allocation fails. There are a couple of ways I can
> see to fix this, do you want to take a crack at it.
> 
> 
> >   	struct aa_profile *profile;
> >   	int error;

I don't whether this kind of thing has become in vogue, but while indeed
the first case is okay right now, it becomes more likely that a future patch
to this function will inadvertently goto aa_put_buffer(buffer) before the
aa_get_buffer call.  I would not have NACKed an original version of this fn
without the = NULL, but I'm not in favor of dropping it.

-serge

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ