Module: xenomai-jki
Branch: for-forge
Commit: 3426c8aa475b8c006b7a38f685a98e3dd40cc98c
URL:    
http://git.xenomai.org/?p=xenomai-jki.git;a=commit;h=3426c8aa475b8c006b7a38f685a98e3dd40cc98c

Author: Jan Kiszka <jan.kis...@siemens.com>
Date:   Thu May 24 19:32:10 2018 +0200

cobalt/posix/sem: Fix semaphore leak on failing xnmalloc

Properly destroy the semaphore in case we cannot allocate a
cobalt_named_sem struct.

Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>

---

 kernel/cobalt/posix/nsem.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/kernel/cobalt/posix/nsem.c b/kernel/cobalt/posix/nsem.c
index 0cc6860..bf2157d 100644
--- a/kernel/cobalt/posix/nsem.c
+++ b/kernel/cobalt/posix/nsem.c
@@ -125,8 +125,10 @@ sem_open(struct cobalt_process *process,
        }
 
        u = xnmalloc(sizeof(*u));
-       if (u == NULL)
+       if (u == NULL) {
+               __cobalt_sem_destroy(handle);
                return ERR_PTR(-ENOMEM);
+       }
 
        u->sem = sem;
        u->usem = ushadow;


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
https://xenomai.org/mailman/listinfo/xenomai-git

Reply via email to