Module Name: src Committed By: christos Date: Sat Apr 4 18:53:51 UTC 2015
Modified Files: src/external/bsd/tcpdump/dist: print-rpki-rtr.c Log Message: Apply commit fb6e5377f392555b8c725f66b8b701f0061a3695: -Fix/add ND_TCHECK2 tests, -Fix a buffer overflow, -Remove a debug printf To generate a diff of this commit: cvs rdiff -u -r1.1.1.4 -r1.2 src/external/bsd/tcpdump/dist/print-rpki-rtr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/bsd/tcpdump/dist/print-rpki-rtr.c diff -u src/external/bsd/tcpdump/dist/print-rpki-rtr.c:1.1.1.4 src/external/bsd/tcpdump/dist/print-rpki-rtr.c:1.2 --- src/external/bsd/tcpdump/dist/print-rpki-rtr.c:1.1.1.4 Tue Mar 31 17:45:48 2015 +++ src/external/bsd/tcpdump/dist/print-rpki-rtr.c Sat Apr 4 14:53:51 2015 @@ -178,7 +178,7 @@ rpki_rtr_pdu_print (netdissect_options * pdu_header = (rpki_rtr_pdu *)tptr; pdu_type = pdu_header->pdu_type; pdu_len = EXTRACT_32BITS(pdu_header->length); - ND_TCHECK2(tptr, pdu_len); + ND_TCHECK2(*tptr, pdu_len); hexdump = FALSE; ND_PRINT((ndo, "%sRPKI-RTRv%u, %s PDU (%u), length: %u", @@ -255,6 +255,7 @@ rpki_rtr_pdu_print (netdissect_options * pdu = (rpki_rtr_pdu_error_report *)tptr; encapsulated_pdu_length = EXTRACT_32BITS(pdu->encapsulated_pdu_length); + ND_TCHECK2(*tptr, encapsulated_pdu_length); tlen = pdu_len; error_code = EXTRACT_16BITS(pdu->pdu_header.u.error_code); @@ -287,10 +288,10 @@ rpki_rtr_pdu_print (netdissect_options * tptr += 4; tlen -= 4; } - printf("text_length: %u tlen %u\n", text_length, tlen); + ND_TCHECK2(*tptr, text_length); if (text_length && (text_length <= tlen )) { memcpy(buf, tptr, min(sizeof(buf)-1, text_length)); - buf[text_length] = '\0'; + buf[min(sizeof(buf) - 1, text_length)] = '\0'; ND_PRINT((ndo, "%sError text: %s", indent_string(indent+2), buf)); } } @@ -337,13 +338,13 @@ rpki_rtr_print(netdissect_options *ndo, pdu_header = (rpki_rtr_pdu *)tptr; pdu_type = pdu_header->pdu_type; pdu_len = EXTRACT_32BITS(pdu_header->length); + ND_TCHECK2(*tptr, pdu_len); /* infinite loop check */ if (!pdu_type || !pdu_len) { break; } - ND_TCHECK2(*tptr, pdu_len); if (tlen < pdu_len) { goto trunc; }