Bugfix: Some memory leaks / invalid accesses
This commit is contained in:
@ -418,6 +418,18 @@ int handle_unmap_notify_event(void *data, xcb_connection_t *conn, xcb_unmap_noti
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Free the client’s colorpixel cache */
|
||||
struct Colorpixel *colorpixel;
|
||||
while (!SLIST_EMPTY(&(client->colorpixels))) {
|
||||
colorpixel = SLIST_FIRST(&(client->colorpixels));
|
||||
SLIST_REMOVE_HEAD(&(client->colorpixels), colorpixels);
|
||||
free(colorpixel->hex);
|
||||
free(colorpixel);
|
||||
}
|
||||
|
||||
if (client->name != NULL)
|
||||
free(client->name);
|
||||
|
||||
if (client->container != NULL) {
|
||||
Container *con = client->container;
|
||||
|
||||
@ -474,8 +486,11 @@ int handle_windowname_change(void *data, xcb_connection_t *conn, uint8_t state,
|
||||
if (client == NULL)
|
||||
return 1;
|
||||
|
||||
if (client->name != NULL)
|
||||
free(client->name);
|
||||
|
||||
client->name_len = xcb_get_property_value_length(prop);
|
||||
client->name = malloc(client->name_len);
|
||||
client->name = smalloc(client->name_len);
|
||||
strncpy(client->name, xcb_get_property_value(prop), client->name_len);
|
||||
printf("rename to \"%.*s\".\n", client->name_len, client->name);
|
||||
|
||||
|
Reference in New Issue
Block a user