]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[BUG] stick-tables did not work when converting IPv6 to IPv4
authorWilly Tarreau <w@1wt.eu>
Thu, 7 Apr 2011 08:50:19 +0000 (10:50 +0200)
committerWilly Tarreau <w@1wt.eu>
Thu, 7 Apr 2011 08:53:30 +0000 (10:53 +0200)
A stick-table of type IPv6 would store a wrong IPv4 address as the
result of an IPv6 to IPv4 conversion. This bug was introduced in
1.5-dev5.

src/stick_table.c

index 5e9aa35718d18445699122c076cff0304e197d12..20bae5fb8ab849f383f384a5dfb953ddffac395e 100644 (file)
@@ -460,8 +460,8 @@ static void *k_ip2ip(union pattern_data *pdata, union stktable_key_data *kdata,
 
 static void *k_ip2ipv6(union pattern_data *pdata, union stktable_key_data *kdata, size_t *len)
 {
-       v4tov6(&pdata->ipv6, &pdata->ip);
-       return (void *)&pdata->ipv6.s6_addr;
+       v4tov6(&kdata->ipv6, &pdata->ip);
+       return (void *)&kdata->ipv6.s6_addr;
 }
 
 static void *k_ipv62ipv6(union pattern_data *pdata, union stktable_key_data *kdata, size_t *len)
@@ -472,8 +472,8 @@ static void *k_ipv62ipv6(union pattern_data *pdata, union stktable_key_data *kda
 /*
 static void *k_ipv62ip(union pattern_data *pdata, union stktable_key_data *kdata, size_t *len)
 {
-       v6tov4(&pdata->ip, &pdata->ipv6);
-       return (void *)&pdata->ip.s_addr;
+       v6tov4(&kdata->ip, &pdata->ipv6);
+       return (void *)&kdata->ip.s_addr;
 }
 */