[gtk/fix-cups-backend-leak: 2/2] cups printbackend: Plug memory leaks
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/fix-cups-backend-leak: 2/2] cups printbackend: Plug memory leaks
- Date: Fri, 12 Aug 2022 22:45:27 +0000 (UTC)
commit 62192cba6e77d1568fc67e169caef8d394d097ff
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Aug 12 18:44:25 2022 -0400
cups printbackend: Plug memory leaks
This loop has many early exits, and all of them
need to free this info object that gets allocated
at the beginning.
modules/printbackends/gtkprintbackendcups.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/modules/printbackends/gtkprintbackendcups.c b/modules/printbackends/gtkprintbackendcups.c
index 00ffc00f73..9a713da0e4 100644
--- a/modules/printbackends/gtkprintbackendcups.c
+++ b/modules/printbackends/gtkprintbackendcups.c
@@ -3726,7 +3726,10 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
attr = ippNextAttribute (response);
if (attr == NULL)
- break;
+ {
+ printer_setup_info_free (info);
+ break;
+ }
while (attr != NULL && ippGetGroupTag (attr) == IPP_TAG_PRINTER)
{
@@ -3737,6 +3740,7 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
if (info->printer_name == NULL ||
(info->printer_uri == NULL && info->member_uris == NULL))
{
+ printer_setup_info_free (info);
if (attr == NULL)
break;
else
@@ -3747,7 +3751,10 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
iter = g_list_find_custom (GTK_PRINT_BACKEND_CUPS (backend)->temporary_queues_removed,
info->printer_name, (GCompareFunc) g_strcmp0);
if (iter != NULL)
- continue;
+ {
+ printer_setup_info_free (info);
+ continue;
+ }
if (info->got_printer_type)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]