[PATCH] compositor: Don't free an uninitialised pointer.

Pekka Paalanen ppaalanen at gmail.com
Thu Sep 11 23:42:27 PDT 2014


On Fri, 12 Sep 2014 03:08:40 +0900
Ryo Munakata <ryomnktml at gmail.com> wrote:

> On Thu, 11 Sep 2014 15:53:15 +0200
> Ondřej Majerech <majerech.o at gmail.com> wrote:
> 
> > When backend_init returns NULL, we goto out_signals, which wants to
> > free(modules), but in this particular code path, modules hasn't been
> > initialised leading to a "Double-free or corruption" error message.
> > Initialising modules to NULL makes the free a no-op in this scenario.
> > 
> > Signed-off-by: Ondřej Majerech <majerech.o at gmail.com>
> > ---
> >  src/compositor.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/compositor.c b/src/compositor.c
> > index b0bc86c..a219766 100644
> > --- a/src/compositor.c
> > +++ b/src/compositor.c
> > @@ -4335,7 +4335,8 @@ int main(int argc, char *argv[])
> >  	int i, fd;
> >  	char *backend = NULL;
> >  	char *shell = NULL;
> > -	char *modules, *option_modules = NULL;
> > +	char *modules = NULL;
> > +	char *option_modules = NULL;
> >  	char *log = NULL;
> >  	char *server_socket = NULL, *end;
> >  	int32_t idle_time = 300;
> 
> This is right.
> I forgot to condider that case when I moved free()s to the end of main().
> 
> Reviewed-by: Ryo Munakata <ryomnktml at gmail.com>
> 
> Thanks.

Nice, pushed.


Thanks,
pq


More information about the wayland-devel mailing list