summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2013-02-12 11:02:46 +1100
committerDamien Miller <djm@mindrot.org>2013-02-12 11:02:46 +1100
commitd6d9fa0281e4856c40d5f03ebe4a5cb6a98337e3 (patch)
tree5b17408c715e7ec22294f0ea5899dd2b77195677
parent18de9133c223cf820688659903de6d1ffc9873b2 (diff)
- djm@cvs.openbsd.org 2013/02/08 00:41:12
[sftp.c] fix NULL deref when built without libedit and control characters entered as command; debugging and patch from Iain Morgan an Loganaden Velvindron in bz#1956
-rw-r--r--ChangeLog5
-rw-r--r--sftp.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index c1d428709..4084052d4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -31,6 +31,11 @@
31 - dtucker@cvs.openbsd.org 2013/02/06 00:22:21 31 - dtucker@cvs.openbsd.org 2013/02/06 00:22:21
32 [auth.c] 32 [auth.c]
33 Fix comment, from jfree.e1 at gmail 33 Fix comment, from jfree.e1 at gmail
34 - djm@cvs.openbsd.org 2013/02/08 00:41:12
35 [sftp.c]
36 fix NULL deref when built without libedit and control characters
37 entered as command; debugging and patch from Iain Morgan an
38 Loganaden Velvindron in bz#1956
34 39
3520130211 4020130211
36 - (djm) [configure.ac openbsd-compat/openssl-compat.h] Repair build on old 41 - (djm) [configure.ac openbsd-compat/openssl-compat.h] Repair build on old
diff --git a/sftp.c b/sftp.c
index 6516d1f1c..9a53b12b7 100644
--- a/sftp.c
+++ b/sftp.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sftp.c,v 1.141 2012/10/05 12:34:39 markus Exp $ */ 1/* $OpenBSD: sftp.c,v 1.142 2013/02/08 00:41:12 djm 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 *
@@ -1145,7 +1145,7 @@ parse_args(const char **cpp, int *pflag, int *rflag, int *lflag, int *iflag,
1145 1145
1146 /* Figure out which command we have */ 1146 /* Figure out which command we have */
1147 for (i = 0; cmds[i].c != NULL; i++) { 1147 for (i = 0; cmds[i].c != NULL; i++) {
1148 if (strcasecmp(cmds[i].c, argv[0]) == 0) 1148 if (argv[0] != NULL && strcasecmp(cmds[i].c, argv[0]) == 0)
1149 break; 1149 break;
1150 } 1150 }
1151 cmdnum = cmds[i].n; 1151 cmdnum = cmds[i].n;