summaryrefslogtreecommitdiffstats
path: root/bin/sh/parser.c
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2016-06-06 08:05:51 -0300
committerRenato Botelho <renato@netgate.com>2016-06-06 08:05:51 -0300
commit47dfb8d658406ebf07225c0104ebe4be06ae405f (patch)
tree83174cbd9592560c48ad2cd11afe42c5c12b6c1b /bin/sh/parser.c
parent131cd15b13bbd3e141e911a65cf7a1895ec6ab05 (diff)
parent13d657a35d96e65f1be391830f36e1adff33534f (diff)
downloadFreeBSD-src-47dfb8d658406ebf07225c0104ebe4be06ae405f.zip
FreeBSD-src-47dfb8d658406ebf07225c0104ebe4be06ae405f.tar.gz
Merge remote-tracking branch 'origin/stable/10' into devel
Diffstat (limited to 'bin/sh/parser.c')
-rw-r--r--bin/sh/parser.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/bin/sh/parser.c b/bin/sh/parser.c
index a5679b8..70a4979 100644
--- a/bin/sh/parser.c
+++ b/bin/sh/parser.c
@@ -1974,7 +1974,7 @@ getprompt(void *unused __unused)
/*
* Format prompt string.
*/
- for (i = 0; (i < 127) && (*fmt != '\0'); i++, fmt++)
+ for (i = 0; (i < PROMPTLEN - 1) && (*fmt != '\0'); i++, fmt++)
if (*fmt == '\\')
switch (*++fmt) {
@@ -1987,7 +1987,8 @@ getprompt(void *unused __unused)
case 'h':
case 'H':
ps[i] = '\0';
- gethostname(&ps[i], PROMPTLEN - i);
+ gethostname(&ps[i], PROMPTLEN - i - 1);
+ ps[PROMPTLEN - 1] = '\0';
/* Skip to end of hostname. */
trim = (*fmt == 'h') ? '.' : '\0';
while ((ps[i] != '\0') && (ps[i] != trim))
@@ -2037,8 +2038,9 @@ getprompt(void *unused __unused)
* Emit unrecognized formats verbatim.
*/
default:
- ps[i++] = '\\';
- ps[i] = *fmt;
+ ps[i] = '\\';
+ if (i < PROMPTLEN - 1)
+ ps[++i] = *fmt;
break;
}
else
OpenPOWER on IntegriCloud