summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2015-03-30 00:00:29 +0000
committerDamien Miller <djm@mindrot.org>2015-03-30 11:01:08 +1100
commit26e0bcf766fadb4a44fb6199386fb1dcab65ad00 (patch)
treee8ffdd98ab3b0bc9f71d4fd0452635bc9d207aff
parentfecede00a76fbb33a349f5121c0b2f9fbc04a777 (diff)
upstream commit
fix uninitialised memory read when parsing a config file consisting of a single nul byte. Found by hanno AT hboeck.de using AFL; ok dtucker
-rw-r--r--readconf.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/readconf.c b/readconf.c
index 42a2961fa..9e15f27bb 100644
--- a/readconf.c
+++ b/readconf.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: readconf.c,v 1.232 2015/02/16 22:13:32 djm Exp $ */ 1/* $OpenBSD: readconf.c,v 1.233 2015/03/30 00:00:29 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -763,7 +763,9 @@ process_config_line(Options *options, struct passwd *pw, const char *host,
763 } 763 }
764 764
765 /* Strip trailing whitespace */ 765 /* Strip trailing whitespace */
766 for (len = strlen(line) - 1; len > 0; len--) { 766 if ((len = strlen(line)) == 0)
767 return 0;
768 for (len--; len > 0; len--) {
767 if (strchr(WHITESPACE, line[len]) == NULL) 769 if (strchr(WHITESPACE, line[len]) == NULL)
768 break; 770 break;
769 line[len] = '\0'; 771 line[len] = '\0';