summaryrefslogtreecommitdiff
path: root/modules/im/ximcp/imExten.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/im/ximcp/imExten.c')
-rw-r--r--modules/im/ximcp/imExten.c11
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,