From 35f1c362b9c005a1094f19cd4cdf5039e5e887d5 Mon Sep 17 00:00:00 2001 From: ysk Date: Fri, 10 Jul 2020 17:49:35 +0800 Subject: add improved boundary check and check malloc return is NULL --- example/ndpiReader.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'example') diff --git a/example/ndpiReader.c b/example/ndpiReader.c index 25535e6b3..413dee95d 100644 --- a/example/ndpiReader.c +++ b/example/ndpiReader.c @@ -2943,6 +2943,9 @@ static void ndpi_process_packet(u_char *args, /* allocate an exact size buffer to check overflows */ uint8_t *packet_checked = malloc(header->caplen); + if(packet_checked == NULL){ + return ; + } memcpy(packet_checked, packet, header->caplen); p = ndpi_workflow_process_packet(ndpi_thread_info[thread_id].workflow, header, packet_checked, csv_fp); @@ -3047,7 +3050,10 @@ static void ndpi_process_packet(u_char *args, Leave the free as last statement to avoid crashes when ndpi_detection_giveup() is called above by printResults() */ - free(packet_checked); + if(packet_checked){ + free(packet_checked); + packet_checked = NULL; + } } /** -- cgit v1.2.3