summaryrefslogtreecommitdiff
path: root/sftp.c
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2010-01-09 22:28:03 +1100
committerDarren Tucker <dtucker@zip.com.au>2010-01-09 22:28:03 +1100
commit70cc092817a61af78c751b8f7a8ac5dcabfeae00 (patch)
tree224c142521964990c93c54f3e073c43a6669fee0 /sftp.c
parent4b28251df4f1b653e7b3e015138c3da53a05bd58 (diff)
downloadopenssh-git-70cc092817a61af78c751b8f7a8ac5dcabfeae00.tar.gz
- dtucker@cvs.openbsd.org 2010/01/09 11:13:02
[sftp.c] Prevent sftp from derefing a null pointer when given a "-" without a command. Also, allow whitespace to follow a "-". bz#1691, path from Colin Watson via Debian. ok djm@ deraadt@
Diffstat (limited to 'sftp.c')
-rw-r--r--sftp.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sftp.c b/sftp.c
index 9f5fa354..78f8ca17 100644
--- a/sftp.c
+++ b/sftp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp.c,v 1.117 2010/01/08 21:50:49 dtucker Exp $ */
+/* $OpenBSD: sftp.c,v 1.118 2010/01/09 11:13:02 dtucker Exp $ */
/*
* Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
*
@@ -1112,17 +1112,18 @@ parse_args(const char **cpp, int *pflag, int *rflag, int *lflag, int *iflag,
/* Skip leading whitespace */
cp = cp + strspn(cp, WHITESPACE);
- /* Ignore blank lines and lines which begin with comment '#' char */
- if (*cp == '\0' || *cp == '#')
- return (0);
-
/* Check for leading '-' (disable error processing) */
*iflag = 0;
if (*cp == '-') {
*iflag = 1;
cp++;
+ cp = cp + strspn(cp, WHITESPACE);
}
+ /* Ignore blank lines and lines which begin with comment '#' char */
+ if (*cp == '\0' || *cp == '#')
+ return (0);
+
if ((argv = makeargv(cp, &argc, 0, NULL, NULL)) == NULL)
return -1;