printers: Fix leak of printer name in callbacks.

printer_set_ppd_async and printer_set_ppd_file_async copy the printer name, but
this isn't freed in any cases that use these callback (the string isn't even
used at all).
This commit is contained in:
Robert Ancell 2020-10-30 10:16:11 +13:00 committed by Robert Ancell
parent ad226b420c
commit 509beee6dc
3 changed files with 7 additions and 7 deletions

View file

@ -94,7 +94,7 @@ ppd_names_free (gpointer user_data)
}
}
static void set_ppd_cb (gchar *printer_name, gboolean success, gpointer user_data);
static void set_ppd_cb (const gchar *printer_name, gboolean success, gpointer user_data);
static void
get_ppd_names_cb (PPDName **names,
@ -139,7 +139,7 @@ search_for_drivers (PpDetailsDialog *self)
}
static void
set_ppd_cb (gchar *printer_name,
set_ppd_cb (const gchar *printer_name,
gboolean success,
gpointer user_data)
{

View file

@ -1443,7 +1443,7 @@ printer_set_ppd_async_dbus_cb (GObject *source_object,
/* Don't call callback if cancelled */
if (!data->cancellable ||
!g_cancellable_is_cancelled (data->cancellable))
data->callback (g_strdup (data->printer_name),
data->callback (data->printer_name,
result,
data->user_data);
@ -1515,7 +1515,7 @@ printer_set_ppd_async (const gchar *printer_name,
return;
out:
callback (g_strdup (printer_name), FALSE, user_data);
callback (printer_name, FALSE, user_data);
g_clear_object (&data->cancellable);
g_free (data->printer_name);
@ -1570,7 +1570,7 @@ printer_set_ppd_file_async_scb (GObject *source_object,
return;
out:
data->callback (g_strdup (data->printer_name), FALSE, data->user_data);
data->callback (data->printer_name, FALSE, data->user_data);
g_clear_object (&data->cancellable);
g_free (data->printer_name);
@ -1628,7 +1628,7 @@ printer_set_ppd_file_async (const gchar *printer_name,
return;
out:
callback (g_strdup (printer_name), FALSE, user_data);
callback (printer_name, FALSE, user_data);
g_clear_object (&data->cancellable);
g_free (data->printer_name);

View file

@ -133,7 +133,7 @@ gchar *printer_get_hostname (cups_ptype_t printer_type,
const gchar *device_uri,
const gchar *printer_uri);
typedef void (*PSPCallback) (gchar *printer_name,
typedef void (*PSPCallback) (const gchar *printer_name,
gboolean success,
gpointer user_data);