* Fix IMAGE_RESOURCE_DIRECTORY_ENTRY structure.
[KERNEL32][VERSION]
* Correct the use of IMAGE_RESOURCE_DIRECTORY_ENTRY.
CORE-7667 #resolve

svn path=/trunk/; revision=61195
This commit is contained in:
Amine Khaldi
2013-12-02 10:56:38 +00:00
parent 72ca7a9058
commit c9a2398976
3 changed files with 9 additions and 9 deletions
+6 -6
View File
@@ -983,7 +983,7 @@ static BOOL enumerate_mapped_resources( QUEUEDUPDATES *updates,
Type = resource_dup_string( root, e1 );
namedir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e1->u2.s3.OffsetToDirectory);
namedir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e1->u2.s2.OffsetToDirectory);
for (j = 0; j < namedir->NumberOfNamedEntries + namedir->NumberOfIdEntries; j++)
{
LPWSTR Name;
@@ -992,7 +992,7 @@ static BOOL enumerate_mapped_resources( QUEUEDUPDATES *updates,
Name = resource_dup_string( root, e2 );
langdir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e2->u2.s3.OffsetToDirectory);
langdir = (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + e2->u2.s2.OffsetToDirectory);
for (k = 0; k < langdir->NumberOfNamedEntries + langdir->NumberOfIdEntries; k++)
{
LANGID Lang;
@@ -1252,8 +1252,8 @@ static BOOL write_resources( QUEUEDUPDATES *updates, LPBYTE base, struct resourc
root->NumberOfIdEntries++;
e1->u1.Id = LOWORD( types->id );
}
e1->u2.s3.OffsetToDirectory = si->names_ofs;
e1->u2.s3.DataIsDirectory = TRUE;
e1->u2.s2.OffsetToDirectory = si->names_ofs;
e1->u2.s2.DataIsDirectory = TRUE;
si->types_ofs += sizeof (IMAGE_RESOURCE_DIRECTORY_ENTRY);
namedir = (IMAGE_RESOURCE_DIRECTORY*) &base[si->names_ofs];
@@ -1288,8 +1288,8 @@ static BOOL write_resources( QUEUEDUPDATES *updates, LPBYTE base, struct resourc
namedir->NumberOfIdEntries++;
e2->u1.Id = LOWORD( names->id );
}
e2->u2.s3.OffsetToDirectory = si->langs_ofs;
e2->u2.s3.DataIsDirectory = TRUE;
e2->u2.s2.OffsetToDirectory = si->langs_ofs;
e2->u2.s2.DataIsDirectory = TRUE;
si->names_ofs += sizeof (IMAGE_RESOURCE_DIRECTORY_ENTRY);
langdir = (IMAGE_RESOURCE_DIRECTORY*) &base[si->langs_ofs];
+2 -2
View File
@@ -84,7 +84,7 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_by_id( const IMAGE_RESOURCE_DI
{
pos = (min + max) / 2;
if (entry[pos].u1.Id == id)
return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s3.OffsetToDirectory);
return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry[pos].u2.s2.OffsetToDirectory);
if (entry[pos].u1.Id > id) max = pos - 1;
else min = pos + 1;
}
@@ -104,7 +104,7 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_default( const IMAGE_RESOURCE_
const IMAGE_RESOURCE_DIRECTORY_ENTRY *entry;
entry = (const IMAGE_RESOURCE_DIRECTORY_ENTRY *)(dir + 1);
return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry->u2.s3.OffsetToDirectory);
return (const IMAGE_RESOURCE_DIRECTORY *)((const char *)root + entry->u2.s2.OffsetToDirectory);
}
+1 -1
View File
@@ -4661,7 +4661,7 @@ typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
_ANONYMOUS_STRUCT struct {
DWORD OffsetToDirectory:31;
DWORD DataIsDirectory:1;
} DUMMYSTRUCTNAME3;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME2;
} IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;