From dead143007e6a249a14fec27fb0b5812894c425b Mon Sep 17 00:00:00 2001 From: J. Ali Harlow Date: Wed, 26 Aug 2009 22:34:27 +0100 Subject: [PATCH] Fix a memory allocation problem --- whelk/wait.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/whelk/wait.c b/whelk/wait.c index ed0f4b9..d85f793 100644 --- a/whelk/wait.c +++ b/whelk/wait.c @@ -5,7 +5,7 @@ int whelk_wait_add_object(struct whelk_wait *wait,HANDLE object) { HANDLE *new; - new=realloc(wait->objects,wait->no_objects+1); + new=realloc(wait->objects,(wait->no_objects+1)*sizeof(*wait->objects)); if (!new) return -1; wait->objects=new; @@ -19,6 +19,8 @@ void whelk_wait_remove_object(struct whelk_wait *wait,HANDLE object) for(i=0;ino_objects;i++) if (wait->objects[i]==object) break; + if (i==wait->no_objects) + return; if (i!=wait->no_objects-1) memcpy(wait->objects+i,wait->objects+i+1, (wait->no_objects-i-1)*sizeof(*wait->objects)); @@ -44,4 +46,5 @@ HANDLE whelk_wait_poll(struct whelk_wait *wait) void whelk_wait_free(struct whelk_wait *wait) { free(wait->objects); + wait->objects=NULL; } -- 1.7.1