# HG changeset patch # User J. Ali Harlow # Date 1251322467 -3600 # Node ID 565f6683213f9c7219a7575682c8dc2422cd2de1 # Parent 62d265f584c41e2ea02da49be9567b8ebd76bac0 Fix a memory allocation problem diff -r 62d265f584c4 -r 565f6683213f whelk/wait.c --- a/whelk/wait.c Wed Aug 26 22:34:00 2009 +0100 +++ b/whelk/wait.c Wed Aug 26 22:34:27 2009 +0100 @@ -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 @@ 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 @@ void whelk_wait_free(struct whelk_wait *wait) { free(wait->objects); + wait->objects=NULL; }