From b04553cac962b4e4d5cd8139c75dc40ac4a3d5c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Thu, 13 Feb 2025 05:42:27 +0100 Subject: [PATCH] goodix-proto: Do not memcpy NULL values ../libfprint/drivers/goodixmoc/goodix_proto.c:214:5: runtime error: null pointer passed as argument 2, which is declared to never be null #0 0x7f378839c3e5 in gx_proto_build_package ../libfprint/drivers/goodixmoc/goodix_proto.c:214 #1 0x7f378838fd9e in alloc_cmd_transfer ../libfprint/drivers/goodixmoc/goodix.c:309 #2 0x7f378838ffe4 in goodix_sensor_cmd ../libfprint/drivers/goodixmoc/goodix.c:336 #3 0x7f378839a778 in gx_fp_template_delete_all ../libfprint/drivers/goodixmoc/goodix.c:1602 #4 0x7f37882d3d59 in fp_device_clear_storage ../libfprint/fp-device.c:1820 #5 0x7f37882d50af in fp_device_clear_storage_sync ../libfprint/fp-device.c:2132 --- libfprint/drivers/goodixmoc/goodix_proto.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libfprint/drivers/goodixmoc/goodix_proto.c b/libfprint/drivers/goodixmoc/goodix_proto.c index ccd06cbb..1a7ab811 100644 --- a/libfprint/drivers/goodixmoc/goodix_proto.c +++ b/libfprint/drivers/goodixmoc/goodix_proto.c @@ -211,7 +211,11 @@ gx_proto_build_package (uint8_t *ppackage, init_pack_header (&header, payload_size, cmd, 0); memcpy (ppackage, &header, PACKAGE_HEADER_SIZE); - memcpy (ppackage + PACKAGE_HEADER_SIZE, payload, payload_size); + + if (payload) + memcpy (ppackage + PACKAGE_HEADER_SIZE, payload, payload_size); + else + ppackage[PACKAGE_HEADER_SIZE] = 0; gx_proto_crc32_calc (ppackage, PACKAGE_HEADER_SIZE + payload_size, ppackage + PACKAGE_HEADER_SIZE + payload_size);