Avoid out of bound write. Avoid using pointer (shared) after free. Signed-off-by: Jean-Christophe DUBOIS <j...@tribudubois.net> --- systems/fbdev/fbdev.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/systems/fbdev/fbdev.c b/systems/fbdev/fbdev.c index aee785b..6d17d46 100644 --- a/systems/fbdev/fbdev.c +++ b/systems/fbdev/fbdev.c @@ -356,7 +356,7 @@ dfb_fbdev_get_pci_info( FBDevShared *shared ) snprintf(path, SYSFS_PATH_MAX, SYS_CLASS_GRAPHICS_DEV, devname); - len = readlink(path,buf,512); + len = readlink(path,buf,sizeof(buf)-1); if(len != -1) { char * base; buf[len] = '\0'; @@ -629,12 +629,12 @@ error: if (shared->current_cmap_memory) SHFREE( pool_data, shared->current_cmap_memory ); + if (dfb_fbdev->framebuffer_base) + munmap( dfb_fbdev->framebuffer_base, shared->fix.smem_len ); + SHFREE( pool, shared ); } - if (dfb_fbdev->framebuffer_base) - munmap( dfb_fbdev->framebuffer_base, shared->fix.smem_len ); - if (dfb_fbdev->fd != -1) close( dfb_fbdev->fd ); -- 1.9.1 _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev