Kaynağa Gözat

Fixed potential double-free in mouse cleanup code

Sam Lantinga 5 yıl önce
ebeveyn
işleme
3e720d2a80
1 değiştirilmiş dosya ile 5 ekleme ve 5 silme
  1. 5 5
      src/video/cocoa/SDL_cocoamouse.m

+ 5 - 5
src/video/cocoa/SDL_cocoamouse.m

@@ -348,10 +348,9 @@ Cocoa_InitMouse(_THIS)
 
     Cocoa_InitMouseEventTap(mouse->driverdata);
 
-    SDL_MouseData *driverdata = (SDL_MouseData*)mouse->driverdata;
     const NSPoint location =  [NSEvent mouseLocation];
-    driverdata->lastMoveX = location.x;
-    driverdata->lastMoveY = location.y;
+    mouse->driverdata->lastMoveX = location.x;
+    mouse->driverdata->lastMoveY = location.y;
 }
 
 void
@@ -482,9 +481,10 @@ Cocoa_QuitMouse(_THIS)
     if (mouse) {
         if (mouse->driverdata) {
             Cocoa_QuitMouseEventTap(((SDL_MouseData*)mouse->driverdata));
-        }
 
-        SDL_free(mouse->driverdata);
+            SDL_free(mouse->driverdata);
+            mouse->driverdata = NULL;
+        }
     }
 }