diff --git a/Quake/pr_edict.c b/Quake/pr_edict.c index 7c30affe..241c9bff 100644 --- a/Quake/pr_edict.c +++ b/Quake/pr_edict.c @@ -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);