diff -urN glibc-2.2.5.orig/locale/programs/ld-collate.c glibc-2.2.5/locale/programs/ld-collate.c --- glibc-2.2.5.orig/locale/programs/ld-collate.c Sat Feb 9 17:19:15 2002 +++ glibc-2.2.5/locale/programs/ld-collate.c Sun Feb 10 20:21:46 2002 @@ -1791,7 +1791,12 @@ sect = collate->sections; while (sect != NULL && sect->rules == NULL) sect = sect->next; - assert (sect != NULL); + /* sections confused by earlier errors + */ + if (sect == NULL) { + error (EXIT_FAILURE, 0, _("Too many errors; giving up")); + return; + } ruleidx = 0; do { @@ -3470,8 +3475,17 @@ } else { - symstr = arg->val.str.startmb; - symlen = arg->val.str.lenmb; + if (arg) + { + symstr = arg->val.str.startmb; + symlen = arg->val.str.lenmb; + } + else + { + lr_error (ldfile, _("%s: bad symbol <%s"), "LC_COLLATE", + ldfile->token.val.str.startmb); + break; + } } if (state == 0)