mirror of
https://github.com/libsdl-org/SDL.git
synced 2026-05-30 21:37:43 +08:00
Fixed bug 5339 - Minor memory leak in SDL_x11events.c
wcodelyokoyt The atom name that X11_GetAtomName() returns never gets freed, which result in a minor memory leak (14 bytes?) every time the user drops a file on a window. You can see the line in question here: https://github.com/spurious/SDL-mirror/blob/6b6170caf69b4189c9a9d14fca96e97f09bbcc41/src/video/x11/SDL_x11events.c#L1350 Fix: call XFree on name after the while loop.
This commit is contained in:
@@ -1380,6 +1380,7 @@ X11_DispatchEvent(_THIS)
|
||||
if (p.format == 8) {
|
||||
char *saveptr = NULL;
|
||||
char *name = X11_XGetAtomName(display, target);
|
||||
if (name) {
|
||||
char *token = SDL_strtokr((char *) p.data, "\r\n", &saveptr);
|
||||
while (token != NULL) {
|
||||
if (SDL_strcmp("text/plain", name) == 0) {
|
||||
@@ -1392,6 +1393,8 @@ X11_DispatchEvent(_THIS)
|
||||
}
|
||||
token = SDL_strtokr(NULL, "\r\n", &saveptr);
|
||||
}
|
||||
X11_XFree(name);
|
||||
}
|
||||
SDL_SendDropComplete(data->window);
|
||||
}
|
||||
X11_XFree(p.data);
|
||||
|
||||
Reference in New Issue
Block a user