]> Savannah Git Hosting - gnulib.git/commitdiff
malloca: Add an argument check.
authorBruno Haible <bruno@clisp.org>
Fri, 2 Feb 2018 23:32:41 +0000 (00:32 +0100)
committerBruno Haible <bruno@clisp.org>
Fri, 2 Feb 2018 23:32:41 +0000 (00:32 +0100)
Suggested by Paul Eggert.

* lib/malloca.c (freea): Check against an invalid argument.

ChangeLog
lib/malloca.c

index ad2ba9d27cbe12252f9c8ba18080f8f1f418a145..85c13f87149fb661082d3f0bb8c0998f114e278d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-02-02  Bruno Haible  <bruno@clisp.org>
+
+       malloca: Add an argument check.
+       Suggested by Paul Eggert.
+       * lib/malloca.c (freea): Check against an invalid argument.
+
 2018-02-02  Bruno Haible  <bruno@clisp.org>
 
        localename: Add support for OpenIndiana.
index 5741cba6f1ce1c6c3918a7a6133c59a9284d5ed4..c5321d17e96b6b9d9555860703ce078406de0246 100644 (file)
@@ -78,6 +78,12 @@ mmalloca (size_t n)
 void
 freea (void *p)
 {
+  /* Check argument.  */
+  if ((uintptr_t) p & (sa_alignment_max - 1))
+    {
+      /* p was not the result of a malloca() call.  Invalid argument.  */
+      abort ();
+    }
   /* Determine whether p was a non-NULL pointer returned by mmalloca().  */
   if ((uintptr_t) p & sa_alignment_max)
     {