Fix a memory allocation problem 0.2.1
authorJ. Ali Harlow <ali@juiblex.co.uk>
Wed Aug 26 22:34:27 2009 +0100 (2009-08-26)
changeset 7565f6683213f
parent 6 62d265f584c4
child 8 b4226227ff0b
child 9 5fc4375cdfb5
Fix a memory allocation problem
whelk/wait.c
     1.1 --- a/whelk/wait.c	Wed Aug 26 22:34:00 2009 +0100
     1.2 +++ b/whelk/wait.c	Wed Aug 26 22:34:27 2009 +0100
     1.3 @@ -5,7 +5,7 @@
     1.4  int whelk_wait_add_object(struct whelk_wait *wait,HANDLE object)
     1.5  {
     1.6      HANDLE *new;
     1.7 -    new=realloc(wait->objects,wait->no_objects+1);
     1.8 +    new=realloc(wait->objects,(wait->no_objects+1)*sizeof(*wait->objects));
     1.9      if (!new)
    1.10  	return -1;
    1.11      wait->objects=new;
    1.12 @@ -19,6 +19,8 @@
    1.13      for(i=0;i<wait->no_objects;i++)
    1.14  	if (wait->objects[i]==object)
    1.15  	    break;
    1.16 +    if (i==wait->no_objects)
    1.17 +	return;
    1.18      if (i!=wait->no_objects-1)
    1.19  	memcpy(wait->objects+i,wait->objects+i+1,
    1.20  	  (wait->no_objects-i-1)*sizeof(*wait->objects));
    1.21 @@ -44,4 +46,5 @@
    1.22  void whelk_wait_free(struct whelk_wait *wait)
    1.23  {
    1.24      free(wait->objects);
    1.25 +    wait->objects=NULL;
    1.26  }