Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/gnu/dist/toolchain/gcc/f Fix a bug with list handling that c...



details:   https://anonhg.NetBSD.org/src/rev/633fbab86d6c
branches:  trunk
changeset: 538807:633fbab86d6c
user:      rafal <rafal%NetBSD.org@localhost>
date:      Wed Oct 30 18:14:37 2002 +0000

description:
Fix a bug with list handling that caused this to abort with a "extraneous
<string>" message if the stars were aligned incorrectly due to fast-and-
loose list handling.

The list handling code didn't discriminate between list nodes and list
heads, resulting in string comparisons using memory in the "list heads
by length" array as the target of the comparison; if the string being
handled was short enough and the pointers present in the list heads
array were just the right form the tool would get spurious matches and
exit with the above message.

PR toolchain/18858

diffstat:

 gnu/dist/toolchain/gcc/f/fini.c |  3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diffs (13 lines):

diff -r 0d5fba8c2952 -r 633fbab86d6c gnu/dist/toolchain/gcc/f/fini.c
--- a/gnu/dist/toolchain/gcc/f/fini.c   Wed Oct 30 17:39:34 2002 +0000
+++ b/gnu/dist/toolchain/gcc/f/fini.c   Wed Oct 30 18:14:37 2002 +0000
@@ -418,7 +418,8 @@
       while ((n->next != (name) &names[len])
             && (strcmp (buf, n->next->name_uc) > 0))
        n = n->next;
-      if (strcmp (buf, n->next->name_uc) == 0)
+      if (n->next != (name) &names[len] 
+         && strcmp (buf, n->next->name_uc) == 0)
        {
          fprintf (stderr, "%s: extraneous \"%s\"\n", input_name, buf);
          do_exit = TRUE;



Home | Main Index | Thread Index | Old Index