upstream commit
1) Use xcalloc() instead of xmalloc() to check for potential overflow. (Feedback from both mmcc@ and djm@) 2) move set_size just before the for loop. (suggested by djm@) OK djm@ Upstream-ID: 013534c308187284756c3141f11d2c0f33c47213
This commit is contained in:
parent
383f10fb84
commit
db6f8dc5dd
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: sftp-server.c,v 1.107 2015/08/20 22:32:42 deraadt Exp $ */
|
/* $OpenBSD: sftp-server.c,v 1.108 2015/11/16 06:13:04 logan Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000-2004 Markus Friedl. All rights reserved.
|
* Copyright (c) 2000-2004 Markus Friedl. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -1631,9 +1631,8 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw)
|
||||||
if ((oqueue = sshbuf_new()) == NULL)
|
if ((oqueue = sshbuf_new()) == NULL)
|
||||||
fatal("%s: sshbuf_new failed", __func__);
|
fatal("%s: sshbuf_new failed", __func__);
|
||||||
|
|
||||||
set_size = howmany(max + 1, NFDBITS) * sizeof(fd_mask);
|
rset = xcalloc(howmany(max + 1, NFDBITS), sizeof(fd_mask));
|
||||||
rset = xmalloc(set_size);
|
wset = xcalloc(howmany(max + 1, NFDBITS), sizeof(fd_mask));
|
||||||
wset = xmalloc(set_size);
|
|
||||||
|
|
||||||
if (homedir != NULL) {
|
if (homedir != NULL) {
|
||||||
if (chdir(homedir) != 0) {
|
if (chdir(homedir) != 0) {
|
||||||
|
@ -1642,6 +1641,7 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_size = howmany(max + 1, NFDBITS) * sizeof(fd_mask);
|
||||||
for (;;) {
|
for (;;) {
|
||||||
memset(rset, 0, set_size);
|
memset(rset, 0, set_size);
|
||||||
memset(wset, 0, set_size);
|
memset(wset, 0, set_size);
|
||||||
|
|
Loading…
Reference in New Issue