From 3266dc984a10e518fc183b6cdac370d4a30db6ce Mon Sep 17 00:00:00 2001 From: Sergey Bronnikov Date: Tue, 6 Jun 2023 22:06:40 +0300 Subject: [PATCH] [libfreerdp] Fix TestFuzzCommonAssistanceHexStringToBin Test breaks contract in freerdp_assistance_hex_string_to_bin(): function expects zero-terminated string. Patch fixes that. --- .../common/test/TestFuzzCommonAssistanceHexStringToBin.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libfreerdp/common/test/TestFuzzCommonAssistanceHexStringToBin.c b/libfreerdp/common/test/TestFuzzCommonAssistanceHexStringToBin.c index 6a4a7dc63..b0847d87f 100644 --- a/libfreerdp/common/test/TestFuzzCommonAssistanceHexStringToBin.c +++ b/libfreerdp/common/test/TestFuzzCommonAssistanceHexStringToBin.c @@ -2,8 +2,15 @@ int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) { - BYTE* pass = freerdp_assistance_hex_string_to_bin((void*)Data, &Size); + char* buf = calloc(Size + 1, sizeof(char)); + if (buf == NULL) + return 0; + memcpy(buf, Data, Size); + buf[Size] = '\0'; + + BYTE* pass = freerdp_assistance_hex_string_to_bin((void*)buf, &Size); free(pass); + free(buf); return 0; }