Changeset 74656 in vbox for trunk/src/VBox/Runtime/common/asn1
- Timestamp:
- Oct 7, 2018 6:28:21 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 125548
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/common/asn1/asn1-cursor.cpp
r73662 r74656 314 314 /* Indefinite form. */ 315 315 else if (pCursor->fFlags & RTASN1CURSOR_FLAGS_DER) 316 return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_ILLEGAL_I DEFINITE_LENGTH,316 return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_ILLEGAL_INDEFINITE_LENGTH, 317 317 "%s: Indefinite length form not allowed in DER mode (uTag=%#x).", pszErrorTag, uTag); 318 else if (pCursor->cbLeft < 2) 319 return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_BAD_INDEFINITE_LENGTH, 320 "%s: Too little data left for indefinite BER/CER encoding (uTag=%#x)", pszErrorTag, uTag); 318 321 else 319 return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_IDEFINITE_LENGTH_NOT_SUP, 320 "%s: Indefinite BER/CER length not supported (uTag=%#x)", pszErrorTag, uTag); 322 { 323 /* Search forward till we find the two terminating zero bytes. */ 324 cb = 0; 325 for (;;) 326 { 327 uint8_t const *pb = (uint8_t const *)memchr(&pCursor->pbCur[cb], 0x00, pCursor->cbLeft - cb - 1); 328 if (pb && pb[1] == 0x00) 329 { 330 cb = &pb[2] - pCursor->pbCur; 331 break; 332 } 333 if (!pb) 334 return RTAsn1CursorSetInfo(pCursor, VERR_ASN1_CURSOR_BAD_INDEFINITE_LENGTH, 335 "%s: Could not find end of indefinite BER/CER record (uTag=%#x)", pszErrorTag, uTag); 336 cb = &pb[1] - pCursor->pbCur; 337 } 338 } 321 339 } 322 340
Note:
See TracChangeset
for help on using the changeset viewer.