Hello all,

You raise many good points, both for and against.

In this specific case, the fix is rather simple and costs very little.
would you consider it?

With it, sed and sed's gnulib testsuite passes all tests under SASN,
which is a nice bonus (and will also prevent false reports in the
future).

regards,
 - assaf



>From 8769b66e1e05f5fdb46221f4a49cef58abaa0b0c Mon Sep 17 00:00:00 2001
From: Assaf Gordon <assafgor...@gmail.com>
Date: Wed, 10 Oct 2018 17:01:43 -0600
Subject: [PATCH] samacls tests: free memory under lint

Avoids false-positives under ASAN and provides better usage examples.
Initially reported by deltatau in https://bugs.gnu.org/32685 . Discussed
in gnulib at https://lists.gnu.org/r/bug-gnulib/2018-10/msg00026.html .

* tests/test-sameacls.c (main): Call free() and acl_free() as needed.
---
 tests/test-sameacls.c | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/tests/test-sameacls.c b/tests/test-sameacls.c
index 51196e3a8..7f0ee6579 100644
--- a/tests/test-sameacls.c
+++ b/tests/test-sameacls.c
@@ -84,6 +84,10 @@ main (int argc, char *argv[])
         fflush (stderr);
         abort ();
       }
+#ifdef lint
+    free (contents1);
+    free (contents2);
+#endif
   }
 
   /* Compare the access permissions of the two files, including ACLs.  */
@@ -218,6 +222,12 @@ main (int argc, char *argv[])
                 return 1;
               }
           }
+#ifdef lint
+        acl_free (acl1);
+        acl_free (acl2);
+        acl_free (text1);
+        acl_free (text2);
+#endif
       }
 #elif HAVE_FACL && defined GETACL /* Solaris, Cygwin, not HP-UX */
   int count1;
@@ -287,6 +297,10 @@ main (int argc, char *argv[])
               return 1;
             }
         }
+#ifdef lint
+      free (entries1);
+      free (entries2);
+#endif
     }
 # ifdef ACE_GETACL
   count1 = acl (file1, ACE_GETACLCNT, 0, NULL);
@@ -366,6 +380,10 @@ main (int argc, char *argv[])
             return 1;
           }
       }
+#ifdef lint
+    free (entries1);
+    free (entries2);
+#endif
   }
 # endif
 #elif HAVE_GETACL /* HP-UX */
@@ -438,6 +456,10 @@ main (int argc, char *argv[])
               return 1;
             }
         }
+#ifdef lint
+      free (entries1);
+      free (entries2);
+#endif
     }
 
 # if HAVE_ACLV_H /* HP-UX >= 11.11 */
@@ -511,6 +533,10 @@ main (int argc, char *argv[])
               return 1;
             }
         }
+#ifdef lint
+      free (entries1);
+      free (entries2);
+#endif
     }
 # endif
 #elif HAVE_ACLX_GET /* AIX */
@@ -687,6 +713,10 @@ main (int argc, char *argv[])
               return 1;
             }
         }
+#ifdef lint
+      free (entries1);
+      free (entries2);
+#endif
     }
 #endif
   }
-- 
2.11.0

Reply via email to