]> Savannah Git Hosting - gnulib.git/commitdiff
mcel-tests: fix read overrun in test case
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 7 Nov 2023 04:38:52 +0000 (20:38 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 7 Nov 2023 04:39:10 +0000 (20:39 -0800)
* tests/test-mcel.c (main): Don’t overrun test input buffer.
Problem reported by Bruno Haible; found on CHERI-64.

ChangeLog
tests/test-mcel.c

index bc9ed2e489976391e2562ffed75a348a7c418ee3..d322f9a08ec96aece1716fbff1ab328fb9350ef7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2023-11-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       mcel-tests: fix read overrun in test case
+       * tests/test-mcel.c (main): Don’t overrun test input buffer.
+       Problem reported by Bruno Haible; found on CHERI-64.
+
 2023-11-06  Bruno Haible  <bruno@clisp.org>
 
        fenv-exceptions-tracking-c99 tests: Fix typo.
index 2977ec06a02914198b30eff716ec2507e061d81b..238a512db1a61f3303934fc54f620c3e2ff4ef65 100644 (file)
@@ -123,9 +123,10 @@ main (void)
           for (int ti = 0; ti < sizeof terminator; ti++)
             {
               char t = terminator[ti];
-              if (i == t)
+              if (i == t || j == t || k == t)
                 continue;
-              mcel_t d = mcel_scant (ijk, t);
+              char const ijkt[] = {i, j, k, t};
+              mcel_t d = mcel_scant (ijkt, t);
               ASSERT (c.ch == d.ch && c.err == d.err && c.len == d.len);
               if (!t)
                 {