diff --git a/xkb/maprules.c b/xkb/maprules.c index e071ab539..b4f29d48e 100644 --- a/xkb/maprules.c +++ b/xkb/maprules.c @@ -470,15 +470,19 @@ CheckLine(InputLine * line, static char * _Concat(char *str1, const char *str2) { - int len; + size_t len; + char *tmp; if ((!str1) || (!str2)) return str1; + len = strlen(str1) + strlen(str2) + 1; - str1 = realloc(str1, len * sizeof(char)); - if (str1) - strcat(str1, str2); - return str1; + tmp = realloc(str1, len); + if (!tmp) + return str1; + + strcat(tmp, str2); + return tmp; } static void