Blob Blame History Raw
diff -up cups-1.4.2/backend/network.c.negative-snmp-string-length cups-1.4.2/backend/network.c
--- cups-1.4.2/backend/network.c.negative-snmp-string-length	2009-08-31 19:45:43.000000000 +0100
+++ cups-1.4.2/backend/network.c	2009-12-08 11:03:05.728413423 +0000
@@ -170,9 +170,13 @@ backendNetworkSideCB(
 
 	        case CUPS_ASN1_BIT_STRING :
 	        case CUPS_ASN1_OCTET_STRING :
-		    i = (int)(sizeof(data) - (dataptr - data));
-		    if (packet.object_value.string.num_bytes < i)
+		    if (packet.object_value.string.num_bytes < 0)
+		      i = 0;
+		    else if (packet.object_value.string.num_bytes < 
+			     (sizeof(data) - (dataptr - data)))
 		      i = packet.object_value.string.num_bytes;
+		    else
+		      i = (int)(sizeof(data) - (dataptr - data));
 
 		    memcpy(dataptr, packet.object_value.string.bytes, i);