* parse_pe.cc (exclusion::sort_and_check): Make error message a little more

explicit and ignore (hopefully) harmless region overlap.
This commit is contained in:
Christopher Faylor 2003-09-18 01:46:18 +00:00
parent f7f542063b
commit b1e00863f3
3 changed files with 16 additions and 9 deletions

View 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> 2003-09-13 Christopher Faylor <cgf@redhat.com>
* kill.c (forcekill): Wait for process to terminate even if * kill.c (forcekill): Wait for process to terminate even if

View File

@ -149,8 +149,8 @@ main (int argc, char **argv)
{ {
int sig = SIGTERM; int sig = SIGTERM;
int force = 0; int force = 0;
char *gotsig = NULL;
int ret = 0; int ret = 0;
char *gotasig = NULL;
prog_name = strrchr (argv[0], '/'); prog_name = strrchr (argv[0], '/');
if (prog_name == NULL) if (prog_name == NULL)
@ -173,8 +173,8 @@ main (int argc, char **argv)
switch (ch) switch (ch)
{ {
case 's': case 's':
gotsig = optarg; gotasig = optarg;
sig = getsig (gotsig); sig = getsig (gotasig);
break; break;
case 'l': case 'l':
if (!optarg) if (!optarg)
@ -200,12 +200,12 @@ main (int argc, char **argv)
print_version (); print_version ();
break; break;
case '?': case '?':
if (gotsig) if (gotasig)
usage (); usage ();
optreset = 1; optreset = 1;
optind = 1 + av - argv; optind = 1 + av - argv;
gotsig = *av + 1; gotasig = *av + 1;
sig = getsig (gotsig); sig = getsig (gotasig);
break; break;
default: default:
usage (); usage ();
@ -213,7 +213,7 @@ main (int argc, char **argv)
} }
} }
test_for_unknown_sig (sig, gotsig); test_for_unknown_sig (sig, gotasig);
argv += optind; argv += optind;
while (*argv != NULL) while (*argv != NULL)

View File

@ -1,6 +1,6 @@
/* parse_pe.cc /* 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> 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++) for (process_mem_region * p = region; p < region + last - 1; p++)
{ {
process_mem_region *q = p + 1; process_mem_region *q = p + 1;
if (q == p + 1)
continue;
if (p->base + size > q->base) 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; return 0;
} }
} }