Skip to content

Conversation

@LionsPhil
Copy link

unload_datafile() already frees the datafile itself, so calling _AL_FREE() on it again is a double-free. This causes custom data loaders returning errors to abruptly abort the program before any error message from them can reach output (or worse just corrupt the heap if it's not caught).

unload_datafile() already frees the datafile itself, so calling _AL_FREE() on it again is a double-free. This causes custom data loaders returning errors to abruptly abort the program before any error message from them can reach output (or worse just corrupt the heap if it's not caught).
@LionsPhil
Copy link
Author

This bug is in upstream Allegro, but I believe https://github.com/liballeg/allegro4 is just intended as a historical archive from their news post: "Note that Allegro 4 should still be treated as mostly abandoned, and won’t be receving regular updates. This change is for the convenience of the few remaining users of it, and to enable easier historical exploration of the repository using Github’s tooling."

Note my debugging for it is done against upstream. I haven't done a build/test here, but it's a simple spot-fix where you can trace the problematic free across a single call.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant