From: Jason S. Ninneman Date: Mon, 12 Jun 2017 16:21:24 +0000 (-0700) Subject: Use strdup() instead of strncpy(). X-Git-Tag: 1.1~377 X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=ca0e04295298397a0b4cfe41a8801f0226cea5d4;p=open-adventure.git Use strdup() instead of strncpy(). --- diff --git a/advent.h b/advent.h index f831a7b..d343106 100644 --- a/advent.h +++ b/advent.h @@ -87,6 +87,7 @@ extern lcg_state lcgstate; #define READ_MODE "rb" #define WRITE_MODE "wb" extern void* xmalloc(size_t); +extern char* xstrdup(const char*); extern void packed_to_token(long, char token[6]); extern void newspeak(char*); extern void PSPEAK(vocab_t,int); diff --git a/misc.c b/misc.c index d89b405..6dd24e0 100644 --- a/misc.c +++ b/misc.c @@ -21,6 +21,17 @@ void* xmalloc(size_t size) return(ptr); } +char* xstrdup(const char* s) +{ + char* ptr = strdup(s); + if (ptr == NULL) + { + fprintf(stderr, "Out of memory!\n"); + exit(EXIT_FAILURE); + } + return(ptr); +} + void packed_to_token(long packed, char token[6]) { // Unpack and map back to ASCII. @@ -60,8 +71,7 @@ void newspeak(char* msg) printf("\n"); // Create a copy of our string, so we can edit it. - char* copy = (char*) xmalloc(strlen(msg) + 1); - strncpy(copy, msg, strlen(msg) + 1); + char* copy = xstrdup(msg); // Staging area for stringified parameters. char parameters[5][100]; // FIXME: to be replaced with dynamic allocation