aboutsummaryrefslogtreecommitdiff
path: root/xkbcomp/listing.c
diff options
context:
space:
mode:
Diffstat (limited to 'xkbcomp/listing.c')
-rw-r--r--xkbcomp/listing.c9
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);