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);