r669 - trunk/varnish-cache/lib/libvarnish

phk at projects.linpro.no phk at projects.linpro.no
Sat Aug 5 16:22:33 CEST 2006


Author: phk
Date: 2006-08-05 16:22:33 +0200 (Sat, 05 Aug 2006)
New Revision: 669

Modified:
   trunk/varnish-cache/lib/libvarnish/binary_heap.c
Log:
More defensive coding.


Modified: trunk/varnish-cache/lib/libvarnish/binary_heap.c
===================================================================
--- trunk/varnish-cache/lib/libvarnish/binary_heap.c	2006-08-05 12:45:45 UTC (rev 668)
+++ trunk/varnish-cache/lib/libvarnish/binary_heap.c	2006-08-05 14:22:33 UTC (rev 669)
@@ -178,10 +178,14 @@
 	assert(bh->next > ROOT_IDX);
 	assert(idx < bh->next);
 	assert(idx > 0);
+	assert(bh->array[idx] != NULL);
 	bh->update(bh->priv, bh->array[idx], 0);
-	if (idx == --bh->next)
+	if (idx == --bh->next) { 
+		bh->array[bh->next] = NULL;
 		return;
+	}
 	bh->array[idx] = bh->array[bh->next];
+	bh->array[bh->next] = NULL;
 	binheap_update(bh, idx);
 	idx = binheap_trickleup(bh, idx);
 	binheap_trickledown(bh, idx);




More information about the varnish-commit mailing list