From 928b23684a1d94dc2bc1cecc75b0e596eb7a4cb9 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sun, 26 Mar 2006 13:53:32 +1100 Subject: - djm@cvs.openbsd.org 2006/03/19 02:24:05 [dh.c readconf.c servconf.c] potential NULL pointer dereferences detected by Coverity via elad AT netbsd.org; ok deraadt@ --- ChangeLog | 6 +++++- dh.c | 3 ++- readconf.c | 3 ++- servconf.c | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1093f5453..19425d867 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,6 +26,10 @@ [hostfile.c] FILE* leak detected by Coverity via elad AT netbsd.org; ok deraadt@ + - djm@cvs.openbsd.org 2006/03/19 02:24:05 + [dh.c readconf.c servconf.c] + potential NULL pointer dereferences detected by Coverity + via elad AT netbsd.org; ok deraadt@ 20060325 - OpenBSD CVS Sync @@ -4283,4 +4287,4 @@ - (djm) Trim deprecated options from INSTALL. Mention UsePAM - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu -$Id: ChangeLog,v 1.4248 2006/03/26 02:52:20 djm Exp $ +$Id: ChangeLog,v 1.4249 2006/03/26 02:53:32 djm Exp $ diff --git a/dh.c b/dh.c index a30b704fb..e8ce3d1a9 100644 --- a/dh.c +++ b/dh.c @@ -45,7 +45,8 @@ parse_prime(int linenum, char *line, struct dhgroup *dhg) char *strsize, *gen, *prime; cp = line; - arg = strdelim(&cp); + if ((arg = strdelim(&cp)) == NULL) + return 0; /* Ignore leading whitespace */ if (*arg == '\0') arg = strdelim(&cp); diff --git a/readconf.c b/readconf.c index 1112d0d86..e2e10d9d6 100644 --- a/readconf.c +++ b/readconf.c @@ -324,7 +324,8 @@ process_config_line(Options *options, const char *host, s = line; /* Get the keyword. (Each line is supposed to begin with a keyword). */ - keyword = strdelim(&s); + if ((keyword = strdelim(&s)) == NULL) + return 0; /* Ignore leading whitespace. */ if (*keyword == '\0') keyword = strdelim(&s); diff --git a/servconf.c b/servconf.c index 2ae93d4c3..7923f5df4 100644 --- a/servconf.c +++ b/servconf.c @@ -447,7 +447,8 @@ process_server_config_line(ServerOptions *options, char *line, u_int i; cp = line; - arg = strdelim(&cp); + if ((arg = strdelim(&cp)) != NULL) + return 0; /* Ignore leading whitespace */ if (*arg == '\0') arg = strdelim(&cp); -- cgit v1.2.3