Skip to contentSkip to conversation

tools/libxc/xc_linux_osdep.c: Don't leak mmap() mapping on map_foreign_bulk() error path

PATCH Applied PRAMOD DEVENDRA 3 participants 3 messages Mar 16, 2015 – Mar 18, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 3/3 tools/libxc/xc_linux_osdep.c: Don't leak mmap() mapping on map_foreign_bulk() error path

From: Pramod Devendra <[email protected]>

CC Ian Jackson <[email protected]>
CC Stefano Stabellini <[email protected]>
CC Ian Campbell <[email protected]>
CC Wei Liu <[email protected]>
---
 tools/libxc/xc_linux_osdep.c |    1 +
 1 file changed, 1 insertion(+)
tools/libxc/xc_linux_osdep.c +1 -0
index b6c435a..ce59590 100644
@@ -323,6 +323,7 @@ static void *linux_privcmd_map_foreign_bulk(xc_interface *xch, xc_osdep_handle h
             if ( pfn == MAP_FAILED )
             {
                 PERROR("xc_map_foreign_bulk: mmap of pfn array failed");
+                (void)munmap(addr, (unsigned long)num << XC_PAGE_SHIFT);
                 return NULL;
             }
         }
Signature · 1 line
1.7.10.4
Acked-by on v1 3/3
#1 lore raw
Quoted 7 lines · PRAMOD DEVENDRA

From: Pramod Devendra <[email protected]>

CC Ian Jackson <[email protected]>
CC Stefano Stabellini <[email protected]>
CC Ian Campbell <[email protected]>
CC Wei Liu <[email protected]>
Quoted 18 lines
---
 tools/libxc/xc_linux_osdep.c |    1 +
 1 file changed, 1 insertion(+)
tools/libxc/xc_linux_osdep.c +1 -0
index b6c435a..ce59590 100644
@@ -323,6 +323,7 @@ static void *linux_privcmd_map_foreign_bulk(xc_interface *xch, xc_osdep_handle h
             if ( pfn == MAP_FAILED )
             {
                 PERROR("xc_map_foreign_bulk: mmap of pfn array failed");
+                (void)munmap(addr, (unsigned long)num << XC_PAGE_SHIFT);
                 return NULL;
             }
         }
Signature · 1 line
1.7.10.4