aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Vidrine <nectar@FreeBSD.org>2003-09-17 17:15:51 +0000
committerJacques Vidrine <nectar@FreeBSD.org>2003-09-17 17:15:51 +0000
commit8e86d7b39a0210cbc6c5fa544e1fb2f7695cf752 (patch)
treefdffae592a769bf1742c33877338e3df4ada7928
parent2523c97fab956f036f8f9d56ac8f3a4db30d2ffb (diff)
downloadsrc-8e86d7b39a0210cbc6c5fa544e1fb2f7695cf752.tar.gz
src-8e86d7b39a0210cbc6c5fa544e1fb2f7695cf752.zip
MFC misc.c 1.1.1.5 (->scp.c):
Correct more cases of allocation size bookkeeping errors. (This file was previously missed during the mergeathon.)
Notes
Notes: svn path=/releng/4.5/; revision=120174
-rw-r--r--crypto/openssh/scp.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/crypto/openssh/scp.c b/crypto/openssh/scp.c
index 81d3b55b9622..d844be36de2b 100644
--- a/crypto/openssh/scp.c
+++ b/crypto/openssh/scp.c
@@ -1174,18 +1174,21 @@ addargs(char *fmt, ...)
{
va_list ap;
char buf[1024];
+ int nalloc;
va_start(ap, fmt);
vsnprintf(buf, sizeof(buf), fmt, ap);
va_end(ap);
if (args.list == NULL) {
- args.nalloc = 32;
+ nalloc = 32;
args.num = 0;
- args.list = xmalloc(args.nalloc * sizeof(char *));
+ args.list = xmalloc(nalloc * sizeof(char *));
+ args.nalloc = nalloc;
} else if (args.num+2 >= args.nalloc) {
- args.nalloc *= 2;
- args.list = xrealloc(args.list, args.nalloc * sizeof(char *));
+ nalloc = args.nalloc * 2;
+ args.list = xrealloc(args.list, nalloc * sizeof(char *));
+ args.nalloc = nalloc;
}
args.list[args.num++] = xstrdup(buf);
args.list[args.num] = NULL;