diff options
Diffstat (limited to 'sftp.c')
-rw-r--r-- | sftp.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sftp.c,v 1.137 2012/09/17 09:54:44 djm Exp $ */ | 1 | /* $OpenBSD: sftp.c,v 1.138 2012/09/18 10:36:12 dtucker Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> | 3 | * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> |
4 | * | 4 | * |
@@ -991,6 +991,10 @@ makeargv(const char *arg, int *argcp, int sloppy, char *lastquote, | |||
991 | state = MA_START; | 991 | state = MA_START; |
992 | i = j = 0; | 992 | i = j = 0; |
993 | for (;;) { | 993 | for (;;) { |
994 | if (argc >= sizeof(argv) / sizeof(*argv)){ | ||
995 | error("Too many arguments."); | ||
996 | return NULL; | ||
997 | } | ||
994 | if (isspace(arg[i])) { | 998 | if (isspace(arg[i])) { |
995 | if (state == MA_UNQUOTED) { | 999 | if (state == MA_UNQUOTED) { |
996 | /* Terminate current argument */ | 1000 | /* Terminate current argument */ |