diff options
Diffstat (limited to 'modules/im/ximcp/imRm.c')
-rw-r--r-- | modules/im/ximcp/imRm.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/modules/im/ximcp/imRm.c b/modules/im/ximcp/imRm.c index 9f5b99bc..5dec292d 100644 --- a/modules/im/ximcp/imRm.c +++ b/modules/im/ximcp/imRm.c @@ -510,13 +510,21 @@ _XimDefaultResName( Xic ic = (Xic)parm; Xim im = (Xim)ic->core.im; char **out; - + char *string; + if(im->core.res_name == (char *)NULL) { return True; } + string=strdup(im->core.res_name); + if ( string == NULL) + return False; + out = (char **)((char *)top + info->offset); - *out = im->core.res_name; + + Xfree(*out); /* free old im->core.res_name */ + *out =string; + return True; } @@ -529,14 +537,22 @@ _XimDefaultResClass( { Xic ic = (Xic)parm; Xim im = (Xim)ic->core.im; + char *string; char **out; if(im->core.res_class == (char *)NULL) { return True; } + string=strdup(im->core.res_class); + if (string == NULL) + return False; + out = (char **)((char *)top + info->offset); - *out = im->core.res_class; + + Xfree(*out); /* free old im->core.res_class */ + *out = string; + return True; } |