From 81d6fd64c09255e90104b3c6e37c9023bd0aa6ec Mon Sep 17 00:00:00 2001 From: Jamey Sharp Date: Sat, 9 Sep 2006 15:52:37 -0700 Subject: [PATCH] Handle XC-MISC request failure when allocating new XIDs. (fixes #7001) --- src/xcb_xid.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/xcb_xid.c b/src/xcb_xid.c index 7d7f784..1c53b53 100644 --- a/src/xcb_xid.c +++ b/src/xcb_xid.c @@ -39,11 +39,16 @@ CARD32 XCBGenerateID(XCBConnection *c) pthread_mutex_lock(&c->xid.lock); if(c->xid.last == c->xid.max) { - XCBXCMiscGetXIDRangeRep *range; - range = XCBXCMiscGetXIDRangeReply(c, XCBXCMiscGetXIDRange(c), 0); - c->xid.last = range->start_id; - c->xid.max = range->start_id + (range->count - 1) * c->xid.inc; - free(range); + XCBXCMiscGetXIDRangeRep *range; + range = XCBXCMiscGetXIDRangeReply(c, XCBXCMiscGetXIDRange(c), 0); + if(!range) + { + pthread_mutex_unlock(&c->xid.lock); + return -1; + } + c->xid.last = range->start_id; + c->xid.max = range->start_id + (range->count - 1) * c->xid.inc; + free(range); } ret = c->xid.last | c->xid.base; c->xid.last += c->xid.inc; -- 2.34.1