diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2020-10-17 20:38:28 +0300 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2020-10-20 13:15:02 +0300 |
commit | 63ffb49f5b6ad7628c12436b75058c0c6976ef8e (patch) | |
tree | 8691c25b9e1d000e4bc280737b9b9bdba22f4a50 | |
parent | 40fca63905e3daa3a20ec1d3bd4ccb22e5f24623 (diff) | |
download | metacity-redhat-1888993.tar.gz |
window: fix crash in get_client_pidredhat-1888993
https://bugzilla.redhat.com/show_bug.cgi?id=1888993
-rw-r--r-- | src/core/window.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/core/window.c b/src/core/window.c index 171b1705..3083a6be 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -9283,16 +9283,28 @@ meta_window_get_client_pid (MetaWindow *self) XResClientIdSpec spec; long num_ids; XResClientIdValue *client_ids; + Status status; + int result; long i; spec.client = self->xwindow; spec.mask = XRES_CLIENT_ID_PID_MASK; - XResQueryClientIds (self->display->xdisplay, - 1, - &spec, - &num_ids, - &client_ids); + num_ids = 0; + client_ids = NULL; + + meta_error_trap_push (self->display); + + status = XResQueryClientIds (self->display->xdisplay, + 1, + &spec, + &num_ids, + &client_ids); + + result = meta_error_trap_pop_with_return (self->display); + + if (status != Success || result != Success) + return -1; for (i = 0; i < num_ids; i++) { |