From 16de50671c7ad77f2acb4ca19d8806aad0490f03 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Sat, 10 Jan 2015 23:39:33 +0000 Subject: Without a segfault in unixmessage_sender_free, please. --- src/libunixonacid/unixmessage_sender_free.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/libunixonacid') diff --git a/src/libunixonacid/unixmessage_sender_free.c b/src/libunixonacid/unixmessage_sender_free.c index 965b1a7..6ef0f42 100644 --- a/src/libunixonacid/unixmessage_sender_free.c +++ b/src/libunixonacid/unixmessage_sender_free.c @@ -9,15 +9,18 @@ void unixmessage_sender_free (unixmessage_sender_t *b) { - unsigned int i = genalloc_s(diuint, &b->offsets)[b->head].right ; unsigned int n = genalloc_len(int, &b->fds) ; - for (; i < n ; i++) + if (n) { - register int fd = genalloc_s(int, &b->fds)[i] ; - if (fd < 0) fd_close(-(fd+1)) ; + unsigned int i = genalloc_s(diuint, &b->offsets)[b->head].right ; + for (; i < n ; i++) + { + register int fd = genalloc_s(int, &b->fds)[i] ; + if (fd < 0) fd_close(-(fd+1)) ; #ifdef SKALIBS_HASANCILAUTOCLOSE - else fd_close(fd) ; + else fd_close(fd) ; #endif + } } genalloc_free(diuint, &b->offsets) ; genalloc_free(int, &b->fds) ; -- cgit v1.2.3