Author: glebius Date: Tue Dec 6 18:52:18 2016 New Revision: 309642 URL: https://svnweb.freebsd.org/changeset/base/309642
Log: Merge r309638 from head: When telnetd(8) composes argument list for login(1), an unexpected sequence of memory allocation failures combined with insufficient error checking could result in the construction and execution of an argument sequence that was not intended. Fix that treating malloc(3) failures as fatal condition. Submitted by: brooks Security: FreeBSD-SA-16:36.telnetd Modified: stable/10/contrib/telnet/telnetd/sys_term.c Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/telnet/telnetd/sys_term.c ============================================================================== --- stable/10/contrib/telnet/telnetd/sys_term.c Tue Dec 6 18:52:02 2016 (r309641) +++ stable/10/contrib/telnet/telnetd/sys_term.c Tue Dec 6 18:52:18 2016 (r309642) @@ -1159,7 +1159,7 @@ addarg(char **argv, const char *val) */ argv = (char **)malloc(sizeof(*argv) * 12); if (argv == NULL) - return(NULL); + fatal(net, "failure allocating argument space"); *argv++ = (char *)10; *argv = (char *)0; } @@ -1170,11 +1170,12 @@ addarg(char **argv, const char *val) *argv = (char *)((long)(*argv) + 10); argv = (char **)realloc(argv, sizeof(*argv)*((long)(*argv) + 2)); if (argv == NULL) - return(NULL); + fatal(net, "failure allocating argument space"); argv++; cpp = &argv[(long)argv[-1] - 10]; } - *cpp++ = strdup(val); + if ((*cpp++ = strdup(val)) == NULL) + fatal(net, "failure allocating argument space"); *cpp = 0; return(argv); } _______________________________________________ svn-src-stable-10@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10 To unsubscribe, send any mail to "svn-src-stable-10-unsubscr...@freebsd.org"