X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=src%2Fcommon%2Frexit.c;h=a3e18b2664648dc13139c0943135291d37425ce7;hb=9c86eed25b9291dac2bd93882fd9d259bdf53201;hp=facf63fffc71a53a9ffd9c0581383f9954bde4f1;hpb=f6445615b0b81a83ef75cc4774bac992bac234bb;p=plomrogue
diff --git a/src/common/rexit.c b/src/common/rexit.c
index facf63f..a3e18b2 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() */
@@ -20,7 +21,7 @@ extern void set_cleanup_func(void (* f)())
-extern void exit_err(int err, char * msg)
+extern void exit_err(int err, const char * msg)
{
if (0 == err)
{
@@ -41,14 +42,16 @@ extern void exit_err(int err, char * msg)
-extern void exit_trouble(int err, char * parent, char * child)
+extern void exit_trouble(int err, const char * parent, const char * child)
{
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, __func__);
+ 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);
}