[Fix] Some long time snprintf mistakes.

This commit is contained in:
Allanis 2013-10-04 17:03:48 +01:00
parent 652d9352ad
commit 0231017e57
3 changed files with 33 additions and 37 deletions

View File

@ -668,8 +668,7 @@ static void outfit_parseSAmmo(Outfit* tmp, const xmlNodePtr parent) {
xmlr_float(node, "speed", tmp->u.amm.speed);
xmlr_float(node, "energy", tmp->u.amm.energy);
if(xml_isNode(node, "gfx")) {
snprintf(str, strlen(xml_get(node))+sizeof(OUTFIT_GFX)+10,
OUTFIT_GFX"space/%s.png", xml_get(node));
snprintf(str, PATH_MAX, OUTFIT_GFX"space/%s.png", xml_get(node));
tmp->u.amm.gfx_space = gl_newSprite(str, 6, 6);
continue;
}
@ -805,8 +804,7 @@ static Outfit* outfit_parse(const xmlNodePtr parent) {
xmlr_int(cur, "price", tmp->price);
xmlr_strd(cur, "description", tmp->description);
if(xml_isNode(cur, "gfx_store")) {
snprintf(str, strlen(xml_get(cur))+sizeof(OUTFIT_GFX)+10,
OUTFIT_GFX"store/%s.png", xml_get(cur));
snprintf(str, PATH_MAX, OUTFIT_GFX"store/%s.png", xml_get(cur));
tmp->gfx_store = gl_newImage(str);
}
} while((cur = cur->next));

View File

@ -1269,31 +1269,30 @@ static void rect_parse(const xmlNodePtr parent, double* x, double* y,
{ (a).x += VX(gui.frame); (a).y = VY(gui.frame) + gui.gfx_frame->h-(a).y; }
static int gui_parse(const xmlNodePtr parent, const char* name) {
xmlNodePtr cur, node;
char* tmp, *tmp2;
char* tmp, buf[PATH_MAX];
/* Gfx. */
/* Set a property and not a node because it must be loaded first. */
tmp2 = xml_nodeProp(parent, "gfx");
if(tmp2 == NULL) {
tmp = xml_nodeProp(parent, "gfx");
if(tmp == NULL) {
ERR("GUI '%s' has no gfx property", name);
return -1;
}
/* Load gfx. */
tmp = malloc((strlen(tmp2)+strlen(GUI_GFX)+12) * sizeof(char));
/* Frame. */
snprintf(tmp, strlen(tmp2)+strlen(GUI_GFX)+5, GUI_GFX"%s.png", tmp2);
snprintf(buf, PATH_MAX, GUI_GFX"%s.png", tmp);
if(gui.gfx_frame) gl_freeTexture(gui.gfx_frame); /* Free if needed. */
gui.gfx_frame = gl_newImage(tmp);
gui.gfx_frame = gl_newImage(buf);
/* Pilot. */
snprintf(tmp, strlen(tmp2)+strlen(GUI_GFX)+11, GUI_GFX"%s_pilot.png", tmp2);
snprintf(buf, PATH_MAX, GUI_GFX"%s_pilot.png", tmp);
if(gui.gfx_targetPilot) gl_freeTexture(gui.gfx_targetPilot); /* Free if needed. */
gui.gfx_targetPilot = gl_newSprite(tmp, 2, 2);
gui.gfx_targetPilot = gl_newSprite(buf, 2, 2);
/* Planet. */
snprintf(tmp, strlen(tmp2)+strlen(GUI_GFX)+12, GUI_GFX"%s_planet.png", tmp2);
snprintf(buf, PATH_MAX, GUI_GFX"%s_planet.png", tmp);
if(gui.gfx_targetPlanet) gl_freeTexture(gui.gfx_targetPlanet); /* Free if needed. */
gui.gfx_targetPlanet = gl_newSprite(tmp, 2, 2);
gui.gfx_targetPlanet = gl_newSprite(buf, 2, 2);
free(tmp);
free(tmp2);
/* Frame (based on gfx). */
vect_csetmin(&gui.frame,

View File

@ -527,8 +527,7 @@ static Planet* planet_pull(const char* name) {
do {
if(xml_isNode(cur, "space")) {
/* Load space gfx. */
snprintf(str, strlen(xml_get(cur))+sizeof(PLANET_GFX_SPACE),
PLANET_GFX_SPACE"%s", xml_get(cur));
snprintf(str, PATH_MAX, PLANET_GFX_SPACE"%s", xml_get(cur));
tmp->gfx_space = gl_newImage(str);
}
else if(xml_isNode(cur, "exterior")) {
@ -957,8 +956,8 @@ void space_exit(void) {
/*if(planetname_stack) free(planetname_stack); */
/*if(systemname_stack) free(systemname_stack); */
if(planetname_stack) {
free(planetname_stack);
planetname_stack = NULL;
free(planetname_stack);
planetname_stack = NULL;
}
if(systemname_stack) {
free(systemname_stack);