diff --git a/utils/cups-browsed.c b/utils/cups-browsed.c index 2cc64dd..e3f5cca 100644 --- a/utils/cups-browsed.c +++ b/utils/cups-browsed.c @@ -2471,7 +2471,8 @@ on_printer_state_changed (CupsNotifier *object, char *ptr, buf[1024]; remote_printer_t *p, *q; http_t *http = NULL; - ipp_t *request, *response; + ipp_t *request = NULL; + ipp_t *response = NULL; ipp_attribute_t *attr; const char *pname = NULL; ipp_pstate_t pstate = IPP_PRINTER_IDLE; @@ -2733,6 +2734,10 @@ on_printer_state_changed (CupsNotifier *object, break; } } + if (response) { + ippDelete(response); + response = NULL; + } if (pstate == IPP_PRINTER_IDLE && paccept) { q->last_printer = i; break; @@ -3640,8 +3645,8 @@ gboolean handle_cups_queues(gpointer unused) { /* Default option settings from printer entry */ for (i = 0; i < p->num_options; i ++) if (strcasecmp(p->options[i].name, "printer-is-shared")) - num_options = cupsAddOption(strdup(p->options[i].name), - strdup(p->options[i].value), + num_options = cupsAddOption(p->options[i].name, + p->options[i].value, num_options, &options); /* Encode option list into IPP attributes */ cupsEncodeOptions2(request, num_options, options, IPP_TAG_PRINTER);