]> git.ozlabs.org Git - ppp.git/commitdiff
pppd: Make sure word read from options file is null-terminated
authorPaul Mackerras <paulus@ozlabs.org>
Sun, 29 Dec 2019 22:32:18 +0000 (09:32 +1100)
committerPaul Mackerras <paulus@ozlabs.org>
Sun, 29 Dec 2019 22:32:18 +0000 (09:32 +1100)
If a word read from an options file was longer than MAXWORDLEN,
we could pass it to option_error() without null termination,
which could have lead to an out-of-bounds access in vslprintf.
Make sure word[] is null terminated in all cases.

Reported-by: Florian Kohnhäuser <florian@kohnhaeuser.com>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
pppd/options.c

index 5e1489f495779d9e58a481f5177ecda66c9166b5..f1d2dc9ddf36947df03d864c47241a6bb34def32 100644 (file)
@@ -1357,6 +1357,7 @@ getword(f, word, newlinep, filename)
 
        c = getc(f);
     }
+    word[MAXWORDLEN-1] = 0;    /* make sure word is null-terminated */
 
     /*
      * End of the word: check for errors.