[libc-commits] [libc] Delete test buffs for asan checks (PR #174018)

Kyungtak Woo via libc-commits libc-commits at lists.llvm.org
Tue Dec 30 12:58:30 PST 2025


https://github.com/kevinwkt created https://github.com/llvm/llvm-project/pull/174018

I'm currently getting "Detected memory leaks" errors due to this. This change should always delete the buffers after use.

>From 3e6b92cafeb1c257bfdc260ef83aa673e666cd24 Mon Sep 17 00:00:00 2001
From: Kyungtak Woo <kevinwkt1997 at gmail.com>
Date: Tue, 30 Dec 2025 14:56:16 -0600
Subject: [PATCH] delete test buffs

---
 libc/fuzzing/stdio/printf_float_conv_fuzz.cpp | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/libc/fuzzing/stdio/printf_float_conv_fuzz.cpp b/libc/fuzzing/stdio/printf_float_conv_fuzz.cpp
index 5b388c1fce1bd..85494d8d3f835 100644
--- a/libc/fuzzing/stdio/printf_float_conv_fuzz.cpp
+++ b/libc/fuzzing/stdio/printf_float_conv_fuzz.cpp
@@ -58,6 +58,7 @@ inline TestResult test_vals(const char *fmt, F num, int prec, int width) {
 
   int test_result = 0;
   int reference_result = 0;
+  TestResult result = TestResult::Success;
 
   test_result = LIBC_NAMESPACE::snprintf(test_buff, buffer_size + 1, fmt, width,
                                          prec, num);
@@ -66,16 +67,14 @@ inline TestResult test_vals(const char *fmt, F num, int prec, int width) {
 
   // All of these calls should return that they wrote the same amount.
   if (test_result != reference_result || test_result != buffer_size) {
-    return TestResult::LengthsDiffer;
-  }
-
-  if (!simple_streq(test_buff, reference_buff, buffer_size)) {
-    return TestResult::StringsNotEqual;
+    result = TestResult::LengthsDiffer;
+  } else if (!simple_streq(test_buff, reference_buff, buffer_size)) {
+    result = TestResult::StringsNotEqual;
   }
 
   delete[] test_buff;
   delete[] reference_buff;
-  return TestResult::Success;
+  return result;
 }
 
 constexpr char const *fmt_arr[] = {



More information about the libc-commits mailing list