X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=extras%2Fcollect%2Fcollect.c;h=feb0e7576871551e6e5984c32a0e43d51a79b9dc;hp=0a852f2db239b2d4050a3ec3b90371c273ddf3ee;hb=b5254b42032b39e393f5c89102ca71c2b3fa0d11;hpb=c7ae0d343bfe168975e01ca4f1026dd52a7f044d diff --git a/extras/collect/collect.c b/extras/collect/collect.c index 0a852f2db..feb0e7576 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)); } }