pr_edict.c: replaced another strcpy() call with q_strlcpy(), tweaked a warning message.

git-svn-id: svn://svn.code.sf.net/p/quakespasm/code/trunk/quakespasm@1586 af15c1b1-3010-417e-b628-4374ebc0bcbd
This commit is contained in:
Ozkan Sezer 2018-05-30 15:01:22 +00:00
parent 0825fb705c
commit 32c80b20b0

View file

@ -794,25 +794,25 @@ static qboolean ED_ParseEpair (void *base, ddef_t *key, const char *s)
break;
case ev_vector:
q_strlcpy(string, s, sizeof(string));
q_strlcpy (string, s, sizeof(string));
end = (char *)string + strlen(string);
v = string;
w = string;
for (i = 0; i < 3 && (w <= end); i++) // ericw -- added (w <= end) check
{
// set `v` to the next space (or 0 byte), and change that char to a 0 byte
// set v to the next space (or 0 byte), and change that char to a 0 byte
while (*v && *v != ' ')
v++;
*v = 0;
((float *)d)[i] = atof (w);
w = v = v+1;
}
// ericw -- fill remaining elements to 0.0f in case we hit the end of string before reading 3 floats
// ericw -- fill remaining elements to 0 in case we hit the end of string
// before reading 3 floats.
if (i < 3)
{
Con_DWarning("vanilla will read garbage for \"%s\" \"%s\"\n", PR_GetString(key->s_name), s);
Con_DWarning ("Avoided reading garbage for \"%s\" \"%s\"\n", PR_GetString(key->s_name), s);
for (; i < 3; i++)
((float *)d)[i] = 0.0f;
}
@ -896,7 +896,7 @@ const char *ED_ParseEdict (const char *data, edict_t *ent)
if (!strcmp(com_token, "light"))
strcpy (com_token, "light_lev"); // hack for single light def
strcpy (keyname, com_token);
q_strlcpy (keyname, com_token, sizeof(keyname));
// another hack to fix keynames with trailing spaces
n = strlen(keyname);