diff --git a/winsup/utils/ChangeLog b/winsup/utils/ChangeLog index 2e930846c..62399be9a 100644 --- a/winsup/utils/ChangeLog +++ b/winsup/utils/ChangeLog @@ -1,3 +1,8 @@ +2003-09-17 Christopher Faylor + + * parse_pe.cc (exclusion::sort_and_check): Make error message a little + more explicit and ignore (hopefully) harmless region overlap. + 2003-09-13 Christopher Faylor * kill.c (forcekill): Wait for process to terminate even if diff --git a/winsup/utils/kill.cc b/winsup/utils/kill.cc index dc654a236..8067cf825 100644 --- a/winsup/utils/kill.cc +++ b/winsup/utils/kill.cc @@ -149,8 +149,8 @@ main (int argc, char **argv) { int sig = SIGTERM; int force = 0; - char *gotsig = NULL; int ret = 0; + char *gotasig = NULL; prog_name = strrchr (argv[0], '/'); if (prog_name == NULL) @@ -173,8 +173,8 @@ main (int argc, char **argv) switch (ch) { case 's': - gotsig = optarg; - sig = getsig (gotsig); + gotasig = optarg; + sig = getsig (gotasig); break; case 'l': if (!optarg) @@ -200,12 +200,12 @@ main (int argc, char **argv) print_version (); break; case '?': - if (gotsig) + if (gotasig) usage (); optreset = 1; optind = 1 + av - argv; - gotsig = *av + 1; - sig = getsig (gotsig); + gotasig = *av + 1; + sig = getsig (gotasig); break; default: usage (); @@ -213,7 +213,7 @@ main (int argc, char **argv) } } - test_for_unknown_sig (sig, gotsig); + test_for_unknown_sig (sig, gotasig); argv += optind; while (*argv != NULL) diff --git a/winsup/utils/parse_pe.cc b/winsup/utils/parse_pe.cc index 07242da87..4dc7d4f0a 100644 --- a/winsup/utils/parse_pe.cc +++ b/winsup/utils/parse_pe.cc @@ -1,6 +1,6 @@ /* parse_pe.cc - Copyright 1999,2000,2001 Red Hat, Inc. + Copyright 1999, 2000, 2001, 2002, 2003 Red Hat, Inc. Written by Egor Duda @@ -47,9 +47,11 @@ exclusion::sort_and_check () for (process_mem_region * p = region; p < region + last - 1; p++) { process_mem_region *q = p + 1; + if (q == p + 1) + continue; if (p->base + size > q->base) { - fprintf (stderr, "region error @ %08x", (unsigned) p->base); + fprintf (stderr, "region error @ (%8p + %d) > %8p\n", (unsigned) p->base, size, q->base); return 0; } }