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

via libc-commits libc-commits at lists.llvm.org
Tue Dec 30 12:59:00 PST 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libc

Author: Kyungtak Woo (kevinwkt)

<details>
<summary>Changes</summary>

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

---
Full diff: https://github.com/llvm/llvm-project/pull/174018.diff


1 Files Affected:

- (modified) libc/fuzzing/stdio/printf_float_conv_fuzz.cpp (+5-6) 


``````````diff
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[] = {

``````````

</details>


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


More information about the libc-commits mailing list