Procházet zdrojové kódy

Fixed bug 2647 - Memory leak in SDL_AddHintCallback function - SDL_hints.c

Nitz

Variable entry going out of scope leaks the storage it points to, at:

        /* Need to add a hint entry for this watcher */
        hint = (SDL_Hint *)SDL_malloc(sizeof(*hint));
        if (!hint) {
            return;
        }

Patch is attached.
Philipp Wiesemann před 10 roky
rodič
revize
2a46a9df21
1 změnil soubory, kde provedl 5 přidání a 0 odebrání
  1. 5 0
      src/SDL_hints.c

+ 5 - 0
src/SDL_hints.c

@@ -149,6 +149,11 @@ SDL_AddHintCallback(const char *name, SDL_HintCallback callback, void *userdata)
         /* Need to add a hint entry for this watcher */
         hint = (SDL_Hint *)SDL_malloc(sizeof(*hint));
         if (!hint) {
+            if(entry)
+            {
+              SDL_free(entry);
+              entry = NULL;
+            }
             return;
         }
         hint->name = SDL_strdup(name);