Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Add input validation and null checking to SDL_Get/SetWindowData [repo…
Browse files Browse the repository at this point in the history
…rted by Joseph T.]
  • Loading branch information
ferzkopp committed Apr 2, 2013
1 parent e10d89c commit 6a10d81
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/video/SDL_video.c
Expand Up @@ -1425,11 +1425,17 @@ SDL_SetWindowData(SDL_Window * window, const char *name, void *userdata)
SDL_WindowUserData *prev, *data;

CHECK_WINDOW_MAGIC(window, NULL);

/* Input validation */
if (name == NULL || SDL_strlen(name) == 0) {
SDL_InvalidParamError("name");
return NULL;
}

/* See if the named data already exists */
prev = NULL;
for (data = window->data; data; prev = data, data = data->next) {
if (SDL_strcmp(data->name, name) == 0) {
if (data->name && SDL_strcmp(data->name, name) == 0) {
void *last_value = data->data;

if (userdata) {
Expand Down Expand Up @@ -1467,8 +1473,14 @@ SDL_GetWindowData(SDL_Window * window, const char *name)

CHECK_WINDOW_MAGIC(window, NULL);

/* Input validation */
if (name == NULL || SDL_strlen(name) == 0) {
SDL_InvalidParamError("name");
return NULL;
}

for (data = window->data; data; data = data->next) {
if (SDL_strcmp(data->name, name) == 0) {
if (data->name && SDL_strcmp(data->name, name) == 0) {
return data->data;
}
}
Expand Down

0 comments on commit 6a10d81

Please sign in to comment.