From: PatR Date: Tue, 14 Jan 2020 22:34:03 +0000 (-0800) Subject: fix sym_val() buffer overrun fix X-Git-Tag: NetHack-3.6.5_Released~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=deccf6a7965207b7ed5960f4fdc0dd7b8082c4be;p=nethack fix sym_val() buffer overrun fix Fix a mistake in commit 74de7d31e0a6b3e2ebd852e333fe66d212fd6a90. Copy+paste error resulted in 'strval + 1' when 'strval' is required. --- diff --git a/src/options.c b/src/options.c index 1f8477193..8b56a87a3 100644 --- a/src/options.c +++ b/src/options.c @@ -6202,6 +6202,7 @@ const char *strval; /* up to 4*BUFSZ-1 long; only first few chars matter */ } else { char *p; + /* +1: skip opening single quote */ (void) strncpy(tmp, strval + 1, sizeof tmp - 1); tmp[sizeof tmp - 1] = '\0'; if ((p = rindex(tmp, '\'')) != 0) { @@ -6210,7 +6211,7 @@ const char *strval; /* up to 4*BUFSZ-1 long; only first few chars matter */ } /* else buf[0] stays '\0' */ } } else { /* not lone char nor single quote */ - (void) strncpy(tmp, strval + 1, sizeof tmp - 1); + (void) strncpy(tmp, strval, sizeof tmp - 1); tmp[sizeof tmp - 1] = '\0'; escapes(tmp, buf); }