summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorChristian Dywan <christian.dywan@lanedo.com>2010-07-19 11:48:06 +0200
committerSimon McVittie <smcv@debian.org>2011-01-05 14:42:45 +0000
commit79b4e478d7fc3890355f17d63de494b4059f30d9 (patch)
tree7bb829a6c822230569eb8f5f28f8b32f2210b604 /tools
parente2be7b92a6d46f02d8d682dd9e51bb494f41e92c (diff)
Check return value of XGetWindowProperty in x11_get_address
Reviewed-by: Thiago Macieira <thiago@kde.org> Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk> Bug: https://bugs.freedesktop.org/show_bug.cgi?id=29881
Diffstat (limited to 'tools')
-rw-r--r--tools/dbus-launch-x11.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/tools/dbus-launch-x11.c b/tools/dbus-launch-x11.c
index fe492227..0d371346 100644
--- a/tools/dbus-launch-x11.c
+++ b/tools/dbus-launch-x11.c
@@ -293,6 +293,7 @@ init_x_atoms (Display *display)
int
x11_get_address (char **paddress, pid_t *pid, long *wid)
{
+ int result;
Atom type;
Window owner;
int format;
@@ -310,10 +311,10 @@ x11_get_address (char **paddress, pid_t *pid, long *wid)
*wid = (long) owner;
/* get the bus address */
- XGetWindowProperty (xdisplay, owner, address_atom, 0, 1024, False,
- XA_STRING, &type, &format, &items, &after,
- (unsigned char **) &data);
- if (type == None || after != 0 || data == NULL || format != 8)
+ result = XGetWindowProperty (xdisplay, owner, address_atom, 0, 1024, False,
+ XA_STRING, &type, &format, &items, &after,
+ (unsigned char **) &data);
+ if (result != Success || type == None || after != 0 || data == NULL || format != 8)
return FALSE; /* error */
*paddress = xstrdup (data);
@@ -323,10 +324,10 @@ x11_get_address (char **paddress, pid_t *pid, long *wid)
if (pid != NULL)
{
*pid = 0;
- XGetWindowProperty (xdisplay, owner, pid_atom, 0, sizeof pid, False,
- XA_CARDINAL, &type, &format, &items, &after,
- (unsigned char **) &data);
- if (type != None && after == 0 && data != NULL && format == 32)
+ result = XGetWindowProperty (xdisplay, owner, pid_atom, 0, sizeof pid, False,
+ XA_CARDINAL, &type, &format, &items, &after,
+ (unsigned char **) &data);
+ if (result == Success && type != None && after == 0 && data != NULL && format == 32)
*pid = (pid_t) *(long*) data;
XFree (data);
}