Fixed gr_glinfo crash when there are way too many extensions present. #150

Merged
utkumaden merged 1 commits from Saturn into Saturn-Next 2024-12-12 17:21:15 +01:00
+19 -1
View File
@@ -5461,7 +5461,25 @@ static void COM_HWR_glinfo(void)
CONS_Printf("%u GL extensions present.\n", gl_num_extensions);
if (list_extensions)
{
CONS_Printf("%s\n", gl_extensions);
// We need this strtok loop because we cannot write the extensions list directly
// to the output buffer, because it will overflow the output buffer of CONS_Printf
// if the GPU is super new and supports a bajillion extensions - xyzzy
char *copy = strdup((const char*)gl_extensions);
char *ext = strtok(copy, " ");
if (copy == NULL)
{
CONS_Printf("Ran out of memory listing extensions?!?!");
return;
}
do
{
CONS_Printf(" - %s\n", ext);
} while ((ext = strtok(NULL, " ")) != NULL);
free(copy);
}
else
{