Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/crypto/external/bsd/openssh/dist/sftp-server.c,v rcsdiff: /ftp/cvs/cvsroot/src/crypto/external/bsd/openssh/dist/sftp-server.c,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.13 retrieving revision 1.14 diff -u -p -r1.13 -r1.14 --- src/crypto/external/bsd/openssh/dist/sftp-server.c 2015/08/21 08:20:59 1.13 +++ src/crypto/external/bsd/openssh/dist/sftp-server.c 2016/03/11 01:55:00 1.14 @@ -1,5 +1,6 @@ -/* $NetBSD: sftp-server.c,v 1.13 2015/08/21 08:20:59 christos Exp $ */ -/* $OpenBSD: sftp-server.c,v 1.107 2015/08/20 22:32:42 deraadt Exp $ */ +/* $NetBSD: sftp-server.c,v 1.14 2016/03/11 01:55:00 christos Exp $ */ +/* $OpenBSD: sftp-server.c,v 1.109 2016/02/15 09:47:49 dtucker Exp $ */ + /* * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. * @@ -17,7 +18,7 @@ */ #include "includes.h" -__RCSID("$NetBSD: sftp-server.c,v 1.13 2015/08/21 08:20:59 christos Exp $"); +__RCSID("$NetBSD: sftp-server.c,v 1.14 2016/03/11 01:55:00 christos Exp $"); #include /* MIN */ #include #include @@ -1486,6 +1487,7 @@ sftp_server_main(int argc, char **argv, extern char *optarg; extern char *__progname; + ssh_malloc_init(); /* must be called before any mallocs */ log_init(__progname, log_level, log_facility, log_stderr); pw = pwcopy(user_pw); @@ -1587,9 +1589,8 @@ sftp_server_main(int argc, char **argv, if ((oqueue = sshbuf_new()) == NULL) fatal("%s: sshbuf_new failed", __func__); - set_size = howmany(max + 1, NFDBITS) * sizeof(fd_mask); - rset = xmalloc(set_size); - wset = xmalloc(set_size); + rset = xcalloc(howmany(max + 1, NFDBITS), sizeof(fd_mask)); + wset = xcalloc(howmany(max + 1, NFDBITS), sizeof(fd_mask)); if (homedir != NULL) { if (chdir(homedir) != 0) { @@ -1598,6 +1599,7 @@ sftp_server_main(int argc, char **argv, } } + set_size = howmany(max + 1, NFDBITS) * sizeof(fd_mask); for (;;) { memset(rset, 0, set_size); memset(wset, 0, set_size);