https://bugs.winehq.org/show_bug.cgi?id=55898
Bernhard Übelacker bernhardu@mailbox.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |71b3d10f953fe6f970d79916662 | |87340ac489130 Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #3 from Bernhard Übelacker bernhardu@mailbox.org --- Got commited, so setting resolved fixed.
(In reply to Fabian Maurer from comment #2)
Not sure if something like that can be prevented, but I'm guessing not really.
Maybe when moving the start of not explicit ordinals from 1 to e.g. 10000. Might be at least useful for debugging; this would have made GetProcAddress(...,00000068) return NULL, therefore no crash whould have happened.
--- a/tools/winebuild/parser.c +++ b/tools/winebuild/parser.c @@ -918,3 +918,3 @@ static void assign_ordinals( DLLSPEC *spec )
- count = max( spec->limit + 1, spec->base + spec->nb_entry_points ); + count = max( spec->limit + 1, spec->base + spec->nb_entry_points + 10000 ); spec->ordinals = xmalloc( count * sizeof(spec->ordinals[0]) ); @@ -941,3 +941,3 @@ static void assign_ordinals( DLLSPEC *spec ) if (spec->entry_points[i].ordinal != -1) continue; - while (spec->ordinals[ordinal]) ordinal++; + while (spec->ordinals[ordinal] || ordinal < 10000) ordinal++; if (ordinal >= MAX_ORDINALS)