X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=src%2Fserver%2Fthings.c;h=eabded27bf98a554330ff84aab1abd34f384fccc;hb=150b9f88a4c73caad8fcf0b850db8e52e4f4c6ae;hp=e0aa674851fcb2527fe74e70df448c9eca52167c;hpb=1452d43c6d7c89219cda91362da53ac8e4acb887;p=plomrogue diff --git a/src/server/things.c b/src/server/things.c index e0aa674..eabded2 100644 --- a/src/server/things.c +++ b/src/server/things.c @@ -5,7 +5,7 @@ #include /* uint8_t, uint16_t, UINT8_MAX, UINT16_MAX */ #include /* free() */ #include /* memset(), strlen() */ -#include "../common/rexit.h" /* exit_err() */ +#include "../common/rexit.h" /* exit_err(), exit_trouble() */ #include "../common/try_malloc.h" /* try_malloc() */ #include "../common/yx_uint8.h" /* yx_uint8 */ #include "map.h" /* is_passable() */ @@ -186,12 +186,15 @@ extern struct Thing * get_player() extern struct ThingType * get_thing_type(uint8_t id) { + char * f_name = "get_thing_type()"; struct ThingType * tt = world.thing_types; for (; NULL != tt && id != tt->id; tt = tt->next); char * err_intro = "Requested thing type of unused ID "; - char err[strlen(err_intro) + 3 + 1 + 1]; - sprintf(err, "%s%d.", err_intro, id); + uint16_t size = strlen(err_intro) + 3 + 1 + 1; + char * err = try_malloc(size, f_name); + exit_trouble(sprintf(err, "%s%d.", err_intro, id) < 0, f_name, "sprintf()"); exit_err(NULL == tt, err); + free(err); return tt; }