OSDN Git Service

* parse_pe.cc (exclusion::sort_and_check): Make error message a little more
authorcgf <cgf>
Thu, 18 Sep 2003 01:46:18 +0000 (01:46 +0000)
committercgf <cgf>
Thu, 18 Sep 2003 01:46:18 +0000 (01:46 +0000)
explicit and ignore (hopefully) harmless region overlap.

winsup/utils/ChangeLog
winsup/utils/kill.cc
winsup/utils/parse_pe.cc

index 2e93084..62399be 100644 (file)
@@ -1,3 +1,8 @@
+2003-09-17  Christopher Faylor  <cgf@redhat.com>
+
+       * 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  <cgf@redhat.com>
 
        * kill.c (forcekill): Wait for process to terminate even if
index dc654a2..8067cf8 100644 (file)
@@ -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)
index 07242da..4dc7d4f 100644 (file)
@@ -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 <deo@logos-m.ru>
 
@@ -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;
        }
     }