diff --git a/cups-str3413.patch b/cups-str3413.patch new file mode 100644 index 0000000..ea2872a --- /dev/null +++ b/cups-str3413.patch @@ -0,0 +1,42 @@ +diff -up cups-1.4.2/backend/snmp.c.str3413 cups-1.4.2/backend/snmp.c +--- cups-1.4.2/backend/snmp.c.str3413 2009-01-14 22:40:58.000000000 +0000 ++++ cups-1.4.2/backend/snmp.c 2009-12-03 10:01:27.933335209 +0000 +@@ -999,7 +999,7 @@ read_snmp_response(int fd) /* I - SNMP + DEVICE_PRODUCT, LexmarkProductOID2); + _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1, + packet.community, CUPS_ASN1_GET_REQUEST, +- DEVICE_URI, LexmarkDeviceIdOID); ++ DEVICE_ID, LexmarkDeviceIdOID); + _cupsSNMPWrite(fd, &(packet.address), CUPS_SNMP_VERSION_1, + packet.community, CUPS_ASN1_GET_REQUEST, + DEVICE_PRODUCT, XeroxProductOID); +@@ -1064,7 +1064,19 @@ read_snmp_response(int fd) /* I - SNMP + + + if (device->id) ++ { ++ if (strlen (device->id) > ++ strlen ((char *)packet.object_value.string.bytes)) ++ { ++ /* ++ * The Device ID we already saw was more complete. ++ */ ++ ++ break; ++ } ++ + free(device->id); ++ } + + device->id = strdup((char *)packet.object_value.string.bytes); + +@@ -1107,7 +1119,8 @@ read_snmp_response(int fd) /* I - SNMP + + case DEVICE_URI : + if (device && packet.object_type == CUPS_ASN1_OCTET_STRING && +- !device->uri) ++ !device->uri && ++ (char *)packet.object_value.string.bytes[0] != '\0') + { + /* + * Update an existing cache entry... diff --git a/cups.spec b/cups.spec index 462a532..7d97e83 100644 --- a/cups.spec +++ b/cups.spec @@ -9,7 +9,7 @@ Summary: Common Unix Printing System Name: cups Version: 1.4.2 -Release: 11%{?dist} +Release: 12%{?dist} License: GPLv2 Group: System Environment/Daemons Source: http://ftp.easysw.com/pub/cups/%{version}/cups-%{version}-source.tar.bz2 @@ -522,7 +522,7 @@ rm -rf $RPM_BUILD_ROOT %{php_extdir}/phpcups.so %changelog -* Thu Dec 3 2009 Tim Waugh - 1:1.4.2-11 +* Thu Dec 3 2009 Tim Waugh - 1:1.4.2-12 - Fixes for SNMP scanning with Lexmark printers (bug #542857, STR #3413). * Mon Nov 23 2009 Tim Waugh 1:1.4.2-10