]> git.ipfire.org Git - thirdparty/iptables.git/commitdiff
xtables-config: fix off by one in parsed strings from /etc/xtables.conf
authorPablo Neira Ayuso <pablo@netfilter.org>
Sun, 10 Mar 2013 15:56:20 +0000 (16:56 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 30 Dec 2013 22:50:28 +0000 (23:50 +0100)
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
iptables/xtables-config-parser.y

index 06b6ca9f576ffd6611a07e7fe98c2606f73d45f7..6017e290fa4deddaa45bf489c22639c74931cbc5 100644 (file)
@@ -69,7 +69,7 @@ static inline void stack_put_i32(void *data, int value)
 
 static inline void stack_put_str(void *data, const char *str)
 {
-       memcpy(data, str, strlen(str)+1);
+       memcpy(data, str, strlen(str));
 }
 
 static void stack_free(struct stack_elem *e)
@@ -108,7 +108,7 @@ line                : family
 
 family         : T_FAMILY T_STRING '{' tables '}'
                {
-                       void *data = stack_push(T_FAMILY, strlen($2));
+                       void *data = stack_push(T_FAMILY, strlen($2)+1);
                        stack_put_str(data, $2);
                }
                ;
@@ -120,7 +120,7 @@ tables              : table
 table          : T_TABLE T_STRING '{' chains '}'
                {
                        /* added in reverse order to pop it in order */
-                       void *data = stack_push(T_TABLE, strlen($2));
+                       void *data = stack_push(T_TABLE, strlen($2)+1);
                        stack_put_str(data, $2);
                }
                ;
@@ -134,9 +134,9 @@ chain               : T_CHAIN T_STRING T_HOOK T_STRING T_PRIO T_INTEGER
                        /* added in reverse order to pop it in order */
                        void *data = stack_push(T_PRIO, sizeof(int32_t));
                        stack_put_i32(data, $6);
-                       data = stack_push(T_HOOK, strlen($4));
+                       data = stack_push(T_HOOK, strlen($4)+1);
                        stack_put_str(data, $4);
-                       data = stack_push(T_CHAIN, strlen($2));
+                       data = stack_push(T_CHAIN, strlen($2)+1);
                        stack_put_str(data, $2);
                }
                ;