diff mbox series

[1/5] argp: fix pointer-subtraction bug

Message ID 1609981580-17229-2-git-send-email-bruno@clisp.org
State New
Headers show
Series argp: Fix several cases of undefined behaviour | expand

Commit Message

Bruno Haible Jan. 7, 2021, 1:06 a.m. UTC
From: Paul Eggert <eggert@cs.ucla.edu>

* argp/argp-help.c (hol_append): Don’t subtract pointers to
different arrays, as this can run afoul of -fcheck-pointer-bounds.
See the thread containing Bruno Haible’s report in:
http://lists.gnu.org/archive/html/bug-gnulib/2017-05/msg00171.html
---
 argp/argp-help.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/argp/argp-help.c b/argp/argp-help.c
index 15c5fd2..f417e12 100644
--- a/argp/argp-help.c
+++ b/argp/argp-help.c
@@ -867,7 +867,8 @@  hol_append (struct hol *hol, struct hol *more)
 
 	  /* Fix up the short options pointers from HOL.  */
 	  for (e = entries, left = hol->num_entries; left > 0; e++, left--)
-	    e->short_options += (short_options - hol->short_options);
+	    e->short_options
+	      = short_options + (e->short_options - hol->short_options);
 
 	  /* Now add the short options from MORE, fixing up its entries
 	     too.  */