summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsg@openbsd.org <jsg@openbsd.org>2014-11-24 03:39:22 +0000
committerDamien Miller <djm@mindrot.org>2014-11-26 13:37:41 +1100
commit72bba3d179ced8b425272efe6956a309202a91f3 (patch)
tree047d271feb9f26003cfb1546cf31849486a84d5d
parent867f49c666adcfe92bf539d9c37c1accdea08bf6 (diff)
upstream commit
Fix crashes in the handling of the sshd config file found with the afl fuzzer. ok deraadt@ djm@
-rw-r--r--servconf.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/servconf.c b/servconf.c
index b317e9c30..99396fb1d 100644
--- a/servconf.c
+++ b/servconf.c
@@ -1,5 +1,5 @@
1 1
2/* $OpenBSD: servconf.c,v 1.254 2014/10/24 02:01:20 lteo Exp $ */ 2/* $OpenBSD: servconf.c,v 1.255 2014/11/24 03:39:22 jsg Exp $ */
3/* 3/*
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
5 * All rights reserved 5 * All rights reserved
@@ -1612,6 +1612,9 @@ process_server_config_line(ServerOptions *options, char *line,
1612 return 0; 1612 return 0;
1613 1613
1614 case sAuthorizedKeysCommand: 1614 case sAuthorizedKeysCommand:
1615 if (cp == NULL)
1616 fatal("%.200s line %d: Missing argument.", filename,
1617 linenum);
1615 len = strspn(cp, WHITESPACE); 1618 len = strspn(cp, WHITESPACE);
1616 if (*activep && options->authorized_keys_command == NULL) { 1619 if (*activep && options->authorized_keys_command == NULL) {
1617 if (cp[len] != '/' && strcasecmp(cp + len, "none") != 0) 1620 if (cp[len] != '/' && strcasecmp(cp + len, "none") != 0)
@@ -1626,6 +1629,9 @@ process_server_config_line(ServerOptions *options, char *line,
1626 charptr = &options->authorized_keys_command_user; 1629 charptr = &options->authorized_keys_command_user;
1627 1630
1628 arg = strdelim(&cp); 1631 arg = strdelim(&cp);
1632 if (!arg || *arg == '\0')
1633 fatal("%s line %d: missing AuthorizedKeysCommandUser "
1634 "argument.", filename, linenum);
1629 if (*activep && *charptr == NULL) 1635 if (*activep && *charptr == NULL)
1630 *charptr = xstrdup(arg); 1636 *charptr = xstrdup(arg);
1631 break; 1637 break;