Avoid subtracting two pointers that don't point into the same block.
authorMatthew Wala <wala1@illinois.edu>
Wed, 30 Nov 2011 00:44:15 +0000 (01:44 +0100)
committerBruno Haible <bruno@clisp.org>
Wed, 30 Nov 2011 00:44:15 +0000 (01:44 +0100)
* lib/argp-help.c (hol_append): Reorder pointer subtractions so that
only pointers into the same memory block are subtracted. We cannot
assume that sizeof (ptrdiff_t) == sizeof (void *).

ChangeLog
lib/argp-help.c

index 9735aa8..66a54f0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-11-29  Matthew Wala  <wala1@illinois.edu>  (tiny change)
+
+       Avoid subtracting two pointers that don't point into the same block.
+       * lib/argp-help.c (hol_append): Reorder pointer subtractions so that
+       only pointers into the same memory block are subtracted. We cannot
+       assume that sizeof (ptrdiff_t) == sizeof (void *).
+
 2011-11-29  Eric Blake  <eblake@redhat.com>
 
        maint.mk: add syntax check for use of compare from init.sh
index 0cc5838..ec7fcda 100644 (file)
@@ -891,7 +891,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.  */