summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--extras/collect/collect.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/extras/collect/collect.c b/extras/collect/collect.c
index 0a852f2db2..feb0e75768 100644
--- a/extras/collect/collect.c
+++ b/extras/collect/collect.c
@@ -271,7 +271,11 @@ static int missing(int fd)
if (him->state == STATE_NONE) {
ret++;
} else {
- sprintf(buf, "%s ", him->name);
+ while (strlen(him->name)+1 >= bufsize) {
+ bufsize = bufsize << 1;
+ buf = realloc(buf, bufsize);
+ }
+ snprintf(buf, strlen(him->name)+2, "%s ", him->name);
write(fd, buf, strlen(buf));
}
}