diff --git a/components/dynlink/los_dynlink.c b/components/dynlink/los_dynlink.c index f62b1b4f..daeba81f 100644 --- a/components/dynlink/los_dynlink.c +++ b/components/dynlink/los_dynlink.c @@ -796,13 +796,13 @@ VOID *LOS_SoLoad(const CHAR *fileName, VOID *pool) return dso; ERR2: - LOS_MemFree(dso->pool, (VOID *)dso->loadBase); + (VOID)LOS_MemFree(dso->pool, (VOID *)dso->loadBase); ERR1: close(dso->fd); (VOID)LOS_MuxPost(g_dynlinkMux); - LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo->elfPhdr); - LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo); - LOS_MemFree(OS_SYS_MEM_ADDR, dso); + (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo->elfPhdr); + (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo); + (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso); return NULL; } @@ -902,9 +902,12 @@ INT32 LOS_SoUnload(VOID *handle) LOS_ListDelete(&dso->dsoNode); (VOID)LOS_MuxPost(g_dynlinkMux); - LOS_MemFree(dso->pool, (VOID *)dso->loadBase); - LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo); - LOS_MemFree(OS_SYS_MEM_ADDR, dso); + (VOID)LOS_MemFree(dso->pool, (VOID *)dso->loadBase); + if (dso->dlInfo != NULL) { + (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo->elfPhdr); + } + (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso->dlInfo); + (VOID)LOS_MemFree(OS_SYS_MEM_ADDR, dso); return LOS_OK; ERR: diff --git a/components/shell/src/cmds/vfs_shellcmd.c b/components/shell/src/cmds/vfs_shellcmd.c index fe9efca8..9210e3c5 100755 --- a/components/shell/src/cmds/vfs_shellcmd.c +++ b/components/shell/src/cmds/vfs_shellcmd.c @@ -209,6 +209,7 @@ VOID OsLs(const CHAR *pathname) } } while (pdirent != NULL); + free(path); (VOID)closedir(d); } }