testautomation: fix use-after-free when restoring hint value

This commit is contained in:
Cameron Gutman 2021-11-12 17:25:24 -06:00
parent 704edf6323
commit f124259e59
1 changed files with 4 additions and 0 deletions

View File

@ -113,6 +113,9 @@ hints_setHint(void *arg)
/* Capture current value */ /* Capture current value */
originalValue = (char *)SDL_GetHint((char*)_HintsEnum[i]); originalValue = (char *)SDL_GetHint((char*)_HintsEnum[i]);
SDLTest_AssertPass("Call to SDL_GetHint(%s)", (char*)_HintsEnum[i]); SDLTest_AssertPass("Call to SDL_GetHint(%s)", (char*)_HintsEnum[i]);
/* Copy the original value, since it will be freed when we set it again */
originalValue = originalValue ? SDL_strdup(originalValue) : NULL;
/* Set value (twice) */ /* Set value (twice) */
for (j=1; j<=2; j++) { for (j=1; j<=2; j++) {
@ -138,6 +141,7 @@ hints_setHint(void *arg)
result == SDL_TRUE || result == SDL_FALSE, result == SDL_TRUE || result == SDL_FALSE,
"Verify valid result was returned, got: %i", "Verify valid result was returned, got: %i",
(int)result); (int)result);
SDL_free(originalValue);
} }
SDL_free(value); SDL_free(value);