]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
xtables: reorder num_old substraction for clarity
authorJan Engelhardt <jengelh@medozas.de>
Sat, 8 Jan 2011 01:10:52 +0000 (02:10 +0100)
committerJan Engelhardt <jengelh@medozas.de>
Sat, 8 Jan 2011 01:10:52 +0000 (02:10 +0100)
When going over this again, I noticed we happen to malloc too much.
That is no problem, but I felt moving the num_old adjustment upwards
makes things more clear, and also addresses the allocation.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
xtables.c

index 566b5c3bfbc99b4f58e104ac273302a2c99a1038..b63090100978e08c16754772c01c2ab2f5fa69b7 100644 (file)
--- a/xtables.c
+++ b/xtables.c
@@ -95,6 +95,13 @@ struct option *xtables_merge_options(struct option *orig_opts,
                for (num_old = 0; oldopts[num_old].name; num_old++) ;
        for (num_new = 0; newopts[num_new].name; num_new++) ;
 
+       /*
+        * Since @oldopts also has @orig_opts already (and does so at the
+        * start), skip these entries.
+        */
+       oldopts += num_oold;
+       num_old -= num_oold;
+
        merge = malloc(sizeof(*mp) * (num_oold + num_old + num_new + 1));
        if (merge == NULL)
                return NULL;
@@ -103,10 +110,6 @@ struct option *xtables_merge_options(struct option *orig_opts,
        memcpy(merge, orig_opts, sizeof(*mp) * num_oold);
        mp = merge + num_oold;
 
-       /* Since @opts also has @orig_opts already, skip the entries */
-       oldopts += num_oold;
-       num_old -= num_oold;
-
        /* Second, the new options */
        xt_params->option_offset += 256;
        *option_offset = xt_params->option_offset;