Blame SOURCES/cups-browsed-memory-leaks.patch

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