summaryrefslogtreecommitdiffstats
path: root/x11/libxklavier/files/patch-libxlavier_xklavier_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'x11/libxklavier/files/patch-libxlavier_xklavier_config.c')
-rw-r--r--x11/libxklavier/files/patch-libxlavier_xklavier_config.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/x11/libxklavier/files/patch-libxlavier_xklavier_config.c b/x11/libxklavier/files/patch-libxlavier_xklavier_config.c
new file mode 100644
index 000000000..61a7f2f85
--- /dev/null
+++ b/x11/libxklavier/files/patch-libxlavier_xklavier_config.c
@@ -0,0 +1,37 @@
+--- libxklavier/xklavier_config.c.orig Thu May 15 00:43:07 2003
++++ libxklavier/xklavier_config.c Thu May 15 00:45:12 2003
+@@ -42,6 +42,18 @@
+ static XkbComponentNamesRec componentNames;
+ static char *locale;
+
++static char *
++xxx_strndup(const char *str, int len) {
++ char *ret;
++
++ if ((str == NULL || len < 0)) return(NULL);
++ ret = (char *)malloc(len + 1);
++ if (ret == NULL) return(NULL);
++ memcpy(ret, str, len);
++ ret[len] = '\0';
++ return(ret);
++}
++
+ static Bool _XklConfigInitialized( )
+ {
+ return theRegistry.xpathContext != NULL;
+@@ -306,13 +318,13 @@
+ while( ( npc = strchr( pc, ',' ) ) != NULL )
+ {
+ int len = npc - pc;
+- *ppc = ( char * ) strndup( pc, len );
++ *ppc = ( char * ) xxx_strndup( pc, len );
+ ppc++;
+ pc = npc + 1;
+ }
+
+ len = npc - pc;
+- *ppc = ( char * ) strndup( pc, len );
++ *ppc = ( char * ) xxx_strndup( pc, len );
+ }
+ }
+