From d9874e8f2f259257356930b7d7ce8025e836e5c9 Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Sun, 2 Feb 2025 00:05:57 -0800 Subject: [PATCH] bugfix resource compar --- src/coff/coff_parse.c | 4 ++-- src/pe/pe.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/coff/coff_parse.c b/src/coff/coff_parse.c index dd501ec5..5abbce9a 100644 --- a/src/coff/coff_parse.c +++ b/src/coff/coff_parse.c @@ -477,12 +477,12 @@ internal int coff_resource_id_compar(void *raw_a, void *raw_b) { int cmp; - COFF_ResourceID *a = raw_b; + COFF_ResourceID *a = raw_a; COFF_ResourceID *b = raw_b; if (a->type == b->type) { switch (a->type) { case COFF_ResourceIDType_Null: cmp = 0; break; - case COFF_ResourceIDType_Number: cmp = a->u.number < b->u.number ? -1 : a->u.number > b->u.number ? +1 : 0; break; + case COFF_ResourceIDType_Number: cmp = MemoryCompare(&a->u.number, &b->u.number, sizeof(a->u.number)); break; case COFF_ResourceIDType_String: cmp = strncmp((char *)a->u.string.str, (char *)b->u.string.str, Min(a->u.string.size, b->u.string.size)); break; default: InvalidPath; break; } diff --git a/src/pe/pe.c b/src/pe/pe.c index a4bac235..b823bbbf 100644 --- a/src/pe/pe.c +++ b/src/pe/pe.c @@ -1555,7 +1555,7 @@ internal PE_ResourceNode * pe_resource_dir_search_node(PE_ResourceDir *dir, COFF_ResourceID id) { for (PE_ResourceNode *i = dir->id_list.first; i != NULL; i = i->next) { - if (coff_resource_id_compar(&i->data.id, &id)) { + if (coff_resource_id_compar(&i->data.id, &id) == 0) { return i; } }