[PATCH 01/32] [libx11] Using freed pointer "e"
Mark Kettenis
mark.kettenis at xs4all.nl
Sat Feb 12 15:00:10 PST 2011
> From: =?UTF-8?q?Erkki=20Sepp=C3=A4l=C3=A4?= <erkki.seppala at vincit.fi>
> Date: Thu, 27 Jan 2011 09:53:44 +0200
>
> Reordered code to first to do the comparison and then to release data
Your static analysis tool isn't all that good. Using the value of a
pointer after freeing the storage it points to is totally fine.
> ---
> src/XlibInt.c | 4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/XlibInt.c b/src/XlibInt.c
> index d55c26a..c385f4c 100644
> --- a/src/XlibInt.c
> +++ b/src/XlibInt.c
> @@ -777,10 +777,10 @@ _XFreeEventCookies(Display *dpy)
> head = (struct stored_event**)&dpy->cookiejar;
>
> DL_FOREACH_SAFE(*head, e, tmp) {
> - XFree(e->ev.data);
> - XFree(e);
> if (dpy->cookiejar == e)
> dpy->cookiejar = NULL;
> + XFree(e->ev.data);
> + XFree(e);
> }
> }
More information about the xorg-devel
mailing list