[RESUELTO] [BUG] en gr_read_png

Started by josebita, December 31, 2012, 03:21:55 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

Splinter, revisando el código de gr_read_png veo que puede haber un leak en caso de que algo falle en la carga de los PNG. Me explico: en la comprobación:

        png_colorp png_palette = ( png_colorp ) png_malloc( png_ptr, 256 * sizeof( png_color ) ) ;
        if ( !png_palette )
        {
            png_destroy_read_struct( &png_ptr, &info_ptr, &end_info ) ;
            free( rowpointers ) ;
            free( row ) ;
            file_close( png ) ;
            return NULL;
        }

No deberia haber un grlib_unload_map() bitmap_destroy() del mapa que se está creando antes del return NULL. De lo contrario ese mapa se pierde en la memoria...


[Edito] Bueno, no se pierde del todo porque BennuGD sabe que anda por ahí, pero no sé si tiene mucho sentido tener cargado en memoria un mapa a medio crear, ¿no?.

SplinterGU

#1
no, no... claro que esta mal, ahi falto un destroy... gracias!

fixed!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2