diff options
Diffstat (limited to 'modules/im/ximcp/imExten.c')
-rw-r--r-- | modules/im/ximcp/imExten.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/modules/im/ximcp/imExten.c b/modules/im/ximcp/imExten.c index c73bcf06..911d84d4 100644 --- a/modules/im/ximcp/imExten.c +++ b/modules/im/ximcp/imExten.c @@ -26,6 +26,7 @@ PERFORMANCE OF THIS SOFTWARE. fujiwara@a80.tech.yk.fujitsu.co.jp ******************************************************************/ +/* $XFree86: xc/lib/X11/imExten.c,v 1.3 2003/02/20 03:30:36 dawes Exp $ */ #include <X11/Xatom.h> #define NEED_EVENTS @@ -75,11 +76,12 @@ _XimIsSupportExt(idx) int n = XIMNumber(extensions) - 1; for (i = 0; i < n; i++) { - if (extensions[i].idx == idx) + if (extensions[i].idx == idx) { if (extensions[i].is_support) return i; else break; + } } return -1; } @@ -478,9 +480,12 @@ _XimExtension(im) len += sizeof(CARD16) /* sizeof imid */ + sizeof(INT16); /* sizeof length of extensions */ - _XimSetHeader((XPointer)buf, XIM_QUERY_EXTENSION, 0, &len); - if (!(_XimWrite(im, len, (XPointer)buf))) + _XimSetHeader((XPointer)buf, XIM_QUERY_EXTENSION, 0, &len); + if (!(_XimWrite(im, len, (XPointer)buf))) { + XFree(buf); return False; + } + XFree(buf); _XimFlush(im); buf_size = BUFSIZE; ret_code = _XimRead(im, &len, (XPointer)reply, buf_size, |