Blob Blame History Raw
--- iptables-1.3.2/iptables.c.free_opts	2005-07-18 14:06:41.000000000 +0200
+++ iptables-1.3.2/iptables.c	2005-07-18 14:06:40.000000000 +0200
@@ -1028,9 +1028,6 @@
 	unsigned int num_old, num_new, i;
 	struct option *merge;
 
-	/* Release previous options merged if any */
-	free_opts(0);
-	
 	for (num_old = 0; oldopts[num_old].name; num_old++);
 	for (num_new = 0; newopts[num_new].name; num_new++);
 
@@ -1039,6 +1036,7 @@
 
 	merge = malloc(sizeof(struct option) * (num_new + num_old + 1));
 	memcpy(merge, oldopts, num_old * sizeof(struct option));
+	free_opts(0); /* Release previous options merged if any */
 	for (i = 0; i < num_new; i++) {
 		merge[num_old + i] = newopts[i];
 		merge[num_old + i].val += *option_offset;