Fixed freeing strings created by strdup() with SDL_free().
authorPhilipp Wiesemann <philipp.wiesemann@arcor.de>
Tue, 28 Jun 2016 21:08:23 +0200
changeset 10187 1f0f8c95531d
parent 10186 6c8e53149f0c
child 10188 9cf58ba2b2ad
Fixed freeing strings created by strdup() with SDL_free(). This only worked on platforms where SDL_free() wraps free().
src/joystick/bsd/SDL_sysjoystick.c
src/joystick/haiku/SDL_haikujoystick.cc
src/video/wayland/SDL_waylandvideo.c
--- a/src/joystick/bsd/SDL_sysjoystick.c	Sun Jun 26 21:08:57 2016 +0200
+++ b/src/joystick/bsd/SDL_sysjoystick.c	Tue Jun 28 21:08:23 2016 +0200
@@ -179,7 +179,7 @@
 
         SDL_snprintf(s, SDL_arraysize(s), "/dev/uhid%d", i);
 
-        joynames[SDL_SYS_numjoysticks] = strdup(s);
+        joynames[SDL_SYS_numjoysticks] = SDL_strdup(s);
 
         if (SDL_SYS_JoystickOpen(&nj, SDL_SYS_numjoysticks) == 0) {
             SDL_SYS_JoystickClose(&nj);
@@ -193,7 +193,7 @@
         SDL_snprintf(s, SDL_arraysize(s), "/dev/joy%d", i);
         fd = open(s, O_RDONLY);
         if (fd != -1) {
-            joynames[SDL_SYS_numjoysticks++] = strdup(s);
+            joynames[SDL_SYS_numjoysticks++] = SDL_strdup(s);
             close(fd);
         }
     }
@@ -304,14 +304,14 @@
     }
     joy->hwdata = hw;
     hw->fd = fd;
-    hw->path = strdup(path);
+    hw->path = SDL_strdup(path);
     if (!SDL_strncmp(path, "/dev/joy", 8)) {
         hw->type = BSDJOY_JOY;
         joy->naxes = 2;
         joy->nbuttons = 2;
         joy->nhats = 0;
         joy->nballs = 0;
-        joydevnames[device_index] = strdup("Gameport joystick");
+        joydevnames[device_index] = SDL_strdup("Gameport joystick");
         goto usbend;
     } else {
         hw->type = BSDJOY_UHID;
@@ -363,7 +363,7 @@
         str[i] = '\0';
         asprintf(&new_name, "%s @ %s", str, path);
         if (new_name != NULL) {
-            free(joydevnames[SDL_SYS_numjoysticks]);
+            SDL_free(joydevnames[SDL_SYS_numjoysticks]);
             joydevnames[SDL_SYS_numjoysticks] = new_name;
         }
     }
--- a/src/joystick/haiku/SDL_haikujoystick.cc	Sun Jun 26 21:08:57 2016 +0200
+++ b/src/joystick/haiku/SDL_haikujoystick.cc	Tue Jun 28 21:08:23 2016 +0200
@@ -74,8 +74,8 @@
                 if (joystick.Open(name) != B_ERROR) {
                     BString stick_name;
                       joystick.GetControllerName(&stick_name);
-                      SDL_joyport[SDL_SYS_numjoysticks] = strdup(name);
-                      SDL_joyname[SDL_SYS_numjoysticks] = strdup(stick_name.String());
+                      SDL_joyport[SDL_SYS_numjoysticks] = SDL_strdup(name);
+                      SDL_joyname[SDL_SYS_numjoysticks] = SDL_strdup(stick_name.String());
                       SDL_SYS_numjoysticks++;
                       joystick.Close();
                 }
--- a/src/video/wayland/SDL_waylandvideo.c	Sun Jun 26 21:08:57 2016 +0200
+++ b/src/video/wayland/SDL_waylandvideo.c	Tue Jun 28 21:08:23 2016 +0200
@@ -145,7 +145,7 @@
 {
     SDL_VideoDisplay *display = data;
 
-    display->name = strdup(model);
+    display->name = SDL_strdup(model);
     display->driverdata = output;
 }