X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fcommon%2Frexit.c;h=7e16f12f7c8bce1aeed17635c9f73ef8f963a8c1;hb=27f8cdc988b4bbd92d9d0daee7019461c690008e;hp=facf63fffc71a53a9ffd9c0581383f9954bde4f1;hpb=f6445615b0b81a83ef75cc4774bac992bac234bb;p=plomrogue diff --git a/src/common/rexit.c b/src/common/rexit.c index facf63f..7e16f12 100644 --- a/src/common/rexit.c +++ b/src/common/rexit.c @@ -4,8 +4,9 @@ #include /* global errno */ #include /* uint16_t */ #include /* printf(), perror(), sprintf() */ -#include /* exit(), EXIT_FAILURE */ +#include /* exit(), free(), EXIT_FAILURE */ #include /* strlen() */ +#include "try_malloc.h" /* try_malloc() */ @@ -43,12 +44,15 @@ extern void exit_err(int err, char * msg) extern void exit_trouble(int err, char * parent, char * child) { + char * f_name = "exit_trouble()"; char * p1 = "Trouble in "; char * p2 = " with "; char * p3 = "."; uint16_t size = strlen(p1) + strlen(parent) + strlen(p2) + strlen(child) + strlen(p3) + 1; - char msg[size]; - sprintf(msg, "%s%s%s%s%s", p1, parent, p2, child, p3); + char * msg = try_malloc(size, f_name); + int test = sprintf(msg, "%s%s%s%s%s", p1, parent, p2, child, p3); + exit_err(test < 0, "Trouble in exit_trouble() with sprintf()"); exit_err(err, msg); + free(msg); }