Hi!

On Fri, 25 Oct 2013 15:15:22 +0200, Emilio Pozuelo Monfort <poch...@gmail.com> 
wrote:
> Minor nitpick:
> 
> On 25/10/13 10:30, Justus Winter wrote:
> > Found using the Clang Static Analyzer.
> > 
> > * libtrivfs/protid-clean.c (trivfs_clean_protid): Fix use-after-free error.

> > --- a/libtrivfs/protid-clean.c
> > +++ b/libtrivfs/protid-clean.c
> > @@ -39,10 +39,13 @@ trivfs_clean_protid (void *arg)
> >      }
> >    if (--cred->po->refcnt == 0)
> >      {
> > +      struct trivfs_control *cntl = cred->po->cntl;
> >        ports_port_deref (cred->po->cntl);
> >        free (cred->po);
> > +      pthread_mutex_unlock (&cntl->lock);
> >      }
> > -  pthread_mutex_unlock (&cred->po->cntl->lock);
> > +  else
> > +    pthread_mutex_unlock (&cred->po->cntl->lock);
> 
> I think it'd be clearer to unconditionally declare cntl before the if block 
> and
> call pthread_mutex_unlock on &cntl->lock after the if block instead of inside
> the if and again inside the else.

I agree; OK to push with that changed.


Grüße,
 Thomas

Attachment: pgpev6Gpi5AEL.pgp
Description: PGP signature

Reply via email to