[cups/f18] dnssd backend: don't crash if avahi gives a callback with no TXT record (bug #927040).

Tim Waugh twaugh at fedoraproject.org
Tue Apr 23 16:10:25 UTC 2013


commit 131a54ac1c30223ea487893490898360e3cca608
Author: Tim Waugh <twaugh at redhat.com>
Date:   Tue Apr 23 17:03:35 2013 +0100

    dnssd backend: don't crash if avahi gives a callback with no TXT record (bug #927040).

 cups-avahi-2-backend.patch |   26 ++++++++++++++------------
 cups.spec                  |    6 +++++-
 2 files changed, 19 insertions(+), 13 deletions(-)
---
diff --git a/cups-avahi-2-backend.patch b/cups-avahi-2-backend.patch
index 9fa3677..bdd4e6a 100644
--- a/cups-avahi-2-backend.patch
+++ b/cups-avahi-2-backend.patch
@@ -1,6 +1,6 @@
-diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
---- cups-1.5.3/backend/dnssd.c.avahi-2-backend	2012-05-15 16:53:18.164774446 +0200
-+++ cups-1.5.3/backend/dnssd.c	2012-05-15 17:09:07.684155704 +0200
+diff -up cups-1.5.4/backend/dnssd.c.avahi-2-backend cups-1.5.4/backend/dnssd.c
+--- cups-1.5.4/backend/dnssd.c.avahi-2-backend	2013-04-23 17:01:44.732854106 +0100
++++ cups-1.5.4/backend/dnssd.c	2013-04-23 17:01:53.671894092 +0100
 @@ -15,14 +15,21 @@
   *
   * Contents:
@@ -523,7 +523,7 @@ diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
  
    fprintf(stderr, "DEBUG2: query_callback(sdRef=%p, flags=%x, "
                    "interfaceIndex=%d, errorCode=%d, fullName=\"%s\", "
-@@ -719,94 +986,233 @@ query_callback(
+@@ -719,94 +986,235 @@ query_callback(
    if ((ptr = strstr(name, "._")) != NULL)
      *ptr = '\0';
  
@@ -592,7 +592,7 @@ diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
 +{
 +  AvahiClient		*client;
 +  cups_device_t		key,
-+			*device;
++			*device = NULL;
 +  char			uqname[1024],
 +			*ptr;
 +  cups_txt_records_t	txtr;
@@ -623,11 +623,13 @@ diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
 +  key.type = device_type (type);
 +
 + /*
-+  * Find the device and the the TXT information.
++  * Find the device and the TXT information.
 +  */
 +
 +  txtr.txt = txt;
-+  device = find_device ((cups_array_t *) context, &txtr, &key);
++  if (txt != NULL)
++    device = find_device ((cups_array_t *) context, &txtr, &key);
++
 +  if (device)
 +  {
 +   /*
@@ -819,7 +821,7 @@ diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
  	{
  	 /*
  	  * Add USB device ID information...
-@@ -861,6 +1267,10 @@ query_callback(
+@@ -861,6 +1269,10 @@ query_callback(
  	  if (device->type == CUPS_DEVICE_PRINTER)
  	    device->sent = 1;
  	}
@@ -830,7 +832,7 @@ diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
        }
  
        if (device->device_id)
-@@ -917,11 +1327,9 @@ query_callback(
+@@ -917,11 +1329,9 @@ query_callback(
      }
    }
  
@@ -843,9 +845,9 @@ diff -up cups-1.5.3/backend/dnssd.c.avahi-2-backend cups-1.5.3/backend/dnssd.c
  /*
   * 'sigterm_handler()' - Handle termination signals...
   */
-diff -up cups-1.5.3/cups/http-support.c.avahi-2-backend cups-1.5.3/cups/http-support.c
---- cups-1.5.3/cups/http-support.c.avahi-2-backend	2012-02-15 02:06:12.000000000 +0100
-+++ cups-1.5.3/cups/http-support.c	2012-05-15 17:04:51.045944634 +0200
+diff -up cups-1.5.4/cups/http-support.c.avahi-2-backend cups-1.5.4/cups/http-support.c
+--- cups-1.5.4/cups/http-support.c.avahi-2-backend	2012-02-15 01:06:12.000000000 +0000
++++ cups-1.5.4/cups/http-support.c	2013-04-23 17:01:44.755854208 +0100
 @@ -43,6 +43,10 @@
   *   http_copy_decode()   - Copy and decode a URI.
   *   http_copy_encode()   - Copy and encode a URI.
diff --git a/cups.spec b/cups.spec
index 11152ba..e734893 100644
--- a/cups.spec
+++ b/cups.spec
@@ -12,7 +12,7 @@
 Summary: Common Unix Printing System
 Name: cups
 Version: 1.5.4
-Release: 26%{?dist}
+Release: 27%{?dist}
 License: GPLv2
 Group: System Environment/Daemons
 Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2
@@ -763,6 +763,10 @@ rm -f %{cups_serverbin}/backend/smb
 %{_mandir}/man5/ipptoolfile.5.gz
 
 %changelog
+* Tue Apr 23 2013 Tim Waugh <twaugh at redhat.com> 1:1.5.4-27
+- dnssd backend: don't crash if avahi gives a callback with no TXT
+  record (bug #927040).
+
 * Tue Mar  5 2013 Tim Waugh <twaugh at redhat.com> 1:1.5.4-26
 - Documentation fixes from STR #4223 (bug #915981).
 


More information about the scm-commits mailing list