From: Ruediger Meier Date: Thu, 13 Mar 2014 08:20:50 +0000 (+0100) Subject: ipcs: fix memleak in ipc_*_get_info functions X-Git-Tag: v2.25-rc1~399^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3d5fcdb19acfa3f8b2ade005af4f7762e309f88f;p=thirdparty%2Futil-linux.git ipcs: fix memleak in ipc_*_get_info functions In case of error (maxid < 0) we do not enter following for loop. It will return 0 and free the structs afterwards because i is still 0. Signed-off-by: Ruediger Meier --- diff --git a/sys-utils/ipcutils.c b/sys-utils/ipcutils.c index ef856f5b79..c45162ad8c 100644 --- a/sys-utils/ipcutils.c +++ b/sys-utils/ipcutils.c @@ -155,8 +155,6 @@ int ipc_shm_get_info(int id, struct shm_data **shmds) /* Fallback; /proc or /sys file(s) missing. */ shm_fallback: maxid = shmctl(0, SHM_INFO, (struct shmid_ds *) &dummy); - if (maxid < 0) - return 0; for (int j = 0; j <= maxid; j++) { int shmid; @@ -297,8 +295,6 @@ int ipc_sem_get_info(int id, struct sem_data **semds) sem_fallback: arg.array = (ushort *) (void *)&dummy; maxid = semctl(0, 0, SEM_INFO, arg); - if (maxid < 0) - return 0; for (int j = 0; j <= maxid; j++) { int semid; @@ -415,8 +411,6 @@ int ipc_msg_get_info(int id, struct msg_data **msgds) /* Fallback; /proc or /sys file(s) missing. */ msg_fallback: maxid = msgctl(0, MSG_INFO, &dummy); - if (maxid < 0) - return 0; for (int j = 0; j <= maxid; j++) { int msgid;