Displaying 2 results from an estimated 2 matches for "numberofnamedentries".
2001 Dec 08
1
LoadOEMResource crash [Was: Re: Problem report: SHRINKER.ERR, fix to DEVICE_Open/CreateFileA? ]
...d_entry_by_id( const 
IMAGE_RESOURCE_DIRECTORY *dir,
                                                          WORD id, const 
void *root )
{
     const IMAGE_RESOURCE_DIRECTORY_ENTRY *entry;
     int min, max, pos;
     entry = (const IMAGE_RESOURCE_DIRECTORY_ENTRY *)(dir + 1);
     min = dir->NumberOfNamedEntries;
     max = min + dir->NumberOfIdEntries - 1;
     while (min <= max)
     {
         pos = (min + max) / 2;
         if (entry[pos].u1.s2.Id == id)
             return (IMAGE_RESOURCE_DIRECTORY *)((char *)root + 
entry[pos].u2.s3.OffsetToDirectory);
         if (entry[pos].u1.s2.Id > id)...
2001 Dec 08
1
LoadOEMResource crash [Was: Re: Problem report: SHRINKER.ERR, fix to DEVICE_Open/CreateFileA? ]
...0, oldmask = 0, cr2 = 
4583436}) at signal_i386.c:882
882                  get_cr2_value(HANDLER_CONTEXT), 
get_error_code(HANDLER_CONTEXT) );
(gdb) up
#3  <signal handler called>
(gdb) up
#4  find_entry_by_id (dir=0x45f000, id=14, root=0x45f000) at 
pe_resource.c:83
83          min = dir->NumberOfNamedEntries;
(gdb)
That's what I thought in the first place. I'll try to print out dir:
(gdb) p dir
$14 = (IMAGE_RESOURCE_DIRECTORY *) 0xc0000005
Huh? The stack trace says the argument is 0x45f000, not 0xc0000005.
So I'll re-run the program, but this time I'll add a breakpoint at 
pe_reso...