Hi all, I had a thought regarding memory allocation in libnsgif.
At the moment, calling `gif_initialise()` will parse the GIF file and allocate memory for rendering. You then call gif_decode_frame() to decompress and render each frame of the animation. However, this means just opening the GIF can trigger very large memory allocations, with no chance for the caller to intervene, except by putting a hard pixel limit into the bitmap_create() callback. For example, a 20 byte GIF can cause a 17gb malloc. How about delaying the allocation of the bitmap until the first call to gif_decode_frame()? This would allow the caller to check the detected width and height and apply some kind of size policy before allowing rendering to occur. Here's a possible patch that does this. It's very simple and does not affect the API, just the memory behaviour (I think): https://github.com/libvips/libvips/commit/9bdf5e8cda3e0c63584984282b1e36d97c50bb1a John _______________________________________________ netsurf-dev mailing list -- netsurf-dev@netsurf-browser.org To unsubscribe send an email to netsurf-dev-le...@netsurf-browser.org