[PATCH libxi 2/2] Check that allocating a buffer succeeded
walter harms
wharms at bfs.de
Thu Oct 27 09:02:54 UTC 2016
looks good to me.
Signed-off-by: wharms at bfs.de
Am 25.10.2016 21:31, schrieb Emilio Pozuelo Monfort:
> Since we are going to write into the buffer, we should make sure the
> allocation didn't fail.
>
> Reported-by: Julien Cristau <jcristau at debian.org>
> Signed-off-by: Emilio Pozuelo Monfort <pochu at debian.org>
> ---
> src/XIQueryDevice.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/src/XIQueryDevice.c b/src/XIQueryDevice.c
> index e3b0c9f..a877d78 100644
> --- a/src/XIQueryDevice.c
> +++ b/src/XIQueryDevice.c
> @@ -66,17 +66,18 @@ XIQueryDevice(Display *dpy, int deviceid, int *ndevices_return)
> {
> *ndevices_return = reply.num_devices;
> info = Xmalloc((reply.num_devices + 1) * sizeof(XIDeviceInfo));
> + buf = Xmalloc(reply.length * 4);
> }
> else
> {
> *ndevices_return = 0;
> info = NULL;
> + buf = NULL;
> }
>
> - if (!info)
> + if (!info || !buf)
> goto error;
>
> - buf = Xmalloc(reply.length * 4);
> _XRead(dpy, buf, reply.length * 4);
> ptr = buf;
> end = buf + reply.length * 4;
> @@ -135,9 +136,9 @@ error_loop:
> Xfree(info[i].name);
> Xfree(info[i].classes);
> }
> +error:
> Xfree(info);
> Xfree(buf);
> -error:
> UnlockDisplay(dpy);
> error_unlocked:
> SyncHandle();
More information about the xorg-devel
mailing list