diff options
Diffstat (limited to 'xkbcomp/listing.c')
-rw-r--r-- | xkbcomp/listing.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/xkbcomp/listing.c b/xkbcomp/listing.c index 11de88a83..c7f5ef83b 100644 --- a/xkbcomp/listing.c +++ b/xkbcomp/listing.c @@ -302,18 +302,19 @@ AddDirectory(char *head, char *ptrn, char *rest, char *map) { char *tmp, *filename; struct stat sbuf; + size_t tmpsize; filename = FileName(file); if (!filename || filename[0] == '.') continue; if (ptrn && (!XkbNameMatchesPattern(filename, ptrn))) continue; - tmp = - (char *) uAlloc((head ? strlen(head) : 0) + strlen(filename) + 2); + tmpsize = (head ? strlen(head) : 0) + strlen(filename) + 2; + tmp = uAlloc(tmpsize); if (!tmp) continue; - sprintf(tmp, "%s%s%s", (head ? head : ""), (head ? "/" : ""), - filename); + snprintf(tmp, tmpsize, "%s%s%s", + (head ? head : ""), (head ? "/" : ""), filename); if (stat(tmp, &sbuf) < 0) { uFree(tmp); |