summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2022-07-11 19:35:10 -0400
committerSolomon Peachy <pizza@shaftnet.org>2022-07-11 19:35:10 -0400
commit840fb4d47b612f53f46ef1bea2fac17a4dcf5ce5 (patch)
tree923aae570c5e53728128bf2ce6b0ec0720cb7a1e
parent632af4837e67ec9c2cd1b8edd177e6c4ce9f1fb6 (diff)
downloadrockbox-840fb4d47b.tar.gz
rockbox-840fb4d47b.zip
doom: Fix a potential buffer trashing in the doom plugin
(caught by GCC12's -Waddress) Change-Id: I122b44324c60c668ed4a066aa6301d40cb7597ba
-rw-r--r--apps/plugins/doom/d_deh.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/apps/plugins/doom/d_deh.c b/apps/plugins/doom/d_deh.c
index 1a399e3b49..0a67aa0aad 100644
--- a/apps/plugins/doom/d_deh.c
+++ b/apps/plugins/doom/d_deh.c
@@ -63,7 +63,7 @@ char* strlwr(char* str)
typedef struct {
const byte *inp; // Pointer to string
size_t size; // Bytes remaining in string
- int fd; // Current file descriptor
+ int fd; // Current file descriptor
} DEHFILE;
// killough 10/98: emulate IO whether input really comes from a file or not
@@ -2868,6 +2868,7 @@ boolean deh_GetData(char *s, char *k, uint_64_t *l, char **strval, int fpout)
if (*t == '=') break;
buffer[i] = *t; // copy it
}
+ if (i == 0) i = 1; /* Just in case */
buffer[--i] = '\0'; // terminate the key before the '='
if (!*t) // end of string with no equal sign
{