diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2021-01-07 02:06:16 +0100 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2021-02-04 16:44:20 -0300 |
commit | 5ec029c8835b71d7a3d6036c9358198b4d9e59fc (patch) | |
tree | 5e99ce85d7d23520c1047bfb4510b4d465607f29 | |
parent | dfc3907cde01f1f15d962f3c9eda9fad1fc7b74f (diff) | |
download | glibc-5ec029c8835b71d7a3d6036c9358198b4d9e59fc.tar.gz |
argp: fix pointer-subtraction bug
* 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
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
-rw-r--r-- | argp/argp-help.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/argp/argp-help.c b/argp/argp-help.c index 15c5fd237b..f417e1294c 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. */ |