diff options
author | Darren Tucker <dtucker@zip.com.au> | 2003-09-22 21:04:23 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2003-09-22 21:04:23 +1000 |
commit | fb16b2411eda857cd358dc4c9c63b66edc217a51 (patch) | |
tree | b1959332991a29ddf752a6e4e9e29a80d139d41c /misc.c | |
parent | d1d41b318117258bd25f2eb2789ba3b91408bd16 (diff) |
- markus@cvs.openbsd.org 2003/09/18 08:49:45
[deattack.c misc.c session.c ssh-agent.c]
more buffer allocation fixes; from Solar Designer; CAN-2003-0682;
ok millert@
Diffstat (limited to 'misc.c')
-rw-r--r-- | misc.c | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -23,7 +23,7 @@ | |||
23 | */ | 23 | */ |
24 | 24 | ||
25 | #include "includes.h" | 25 | #include "includes.h" |
26 | RCSID("$OpenBSD: misc.c,v 1.21 2003/04/12 10:15:36 markus Exp $"); | 26 | RCSID("$OpenBSD: misc.c,v 1.22 2003/09/18 08:49:45 markus Exp $"); |
27 | 27 | ||
28 | #include "misc.h" | 28 | #include "misc.h" |
29 | #include "log.h" | 29 | #include "log.h" |
@@ -308,18 +308,21 @@ addargs(arglist *args, char *fmt, ...) | |||
308 | { | 308 | { |
309 | va_list ap; | 309 | va_list ap; |
310 | char buf[1024]; | 310 | char buf[1024]; |
311 | int nalloc; | ||
311 | 312 | ||
312 | va_start(ap, fmt); | 313 | va_start(ap, fmt); |
313 | vsnprintf(buf, sizeof(buf), fmt, ap); | 314 | vsnprintf(buf, sizeof(buf), fmt, ap); |
314 | va_end(ap); | 315 | va_end(ap); |
315 | 316 | ||
317 | nalloc = args->nalloc; | ||
316 | if (args->list == NULL) { | 318 | if (args->list == NULL) { |
317 | args->nalloc = 32; | 319 | nalloc = 32; |
318 | args->num = 0; | 320 | args->num = 0; |
319 | } else if (args->num+2 >= args->nalloc) | 321 | } else if (args->num+2 >= nalloc) |
320 | args->nalloc *= 2; | 322 | nalloc *= 2; |
321 | 323 | ||
322 | args->list = xrealloc(args->list, args->nalloc * sizeof(char *)); | 324 | args->list = xrealloc(args->list, nalloc * sizeof(char *)); |
325 | args->nalloc = nalloc; | ||
323 | args->list[args->num++] = xstrdup(buf); | 326 | args->list[args->num++] = xstrdup(buf); |
324 | args->list[args->num] = NULL; | 327 | args->list[args->num] = NULL; |
325 | } | 328 | } |