Bug 1148374: Revert changeset 9c2345405e0c because it is incorrect.
--- a/cmd/lib/derprint.c
+++ b/cmd/lib/derprint.c
@@ -498,20 +498,19 @@ prettyPrintItem(FILE *out, const unsigne
data += slen;
lenLen = prettyPrintLength(out, data, end, &slen, &indefinite, lv, raw);
if (lenLen < 0)
return lenLen;
data += lenLen;
/*
- * Just quit now if slen more bytes puts us off the end,
- * or if there's no more data to process.
+ * Just quit now if slen more bytes puts us off the end.
*/
- if ((data + slen) >= end) {
+ if ((data + slen) > end) {
PORT_SetError(SEC_ERROR_BAD_DER);
return -1;
}
if (code & SEC_ASN1_CONSTRUCTED) {
if (slen > 0 || indefinite) {
slen = prettyPrintItem(out, data,
slen == 0 ? end : data + slen,