aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/ipv6
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2013-11-16 09:18:14 +0000
committerSteven Barth <steven@midlink.org>2013-11-16 09:18:14 +0000
commit1c82c32e7dda45a2efcf4376a4a8285f0a3d822c (patch)
tree8327ebd94d6f162c21e797049983f4c2a3913f06 /package/network/ipv6
parentb041af2c640ab6716e0c1db72950b1e0e99afae0 (diff)
downloadupstream-1c82c32e7dda45a2efcf4376a4a8285f0a3d822c.tar.gz
upstream-1c82c32e7dda45a2efcf4376a4a8285f0a3d822c.tar.bz2
upstream-1c82c32e7dda45a2efcf4376a4a8285f0a3d822c.zip
6rd: Clear correct IPv6 address bits in 6rdcalc
The correct bits are now cleared in the IPv6 address as the shift value to the correct byte in the IPv6 address was wrong. Depending on the stack values this could result in a hanging 6rdcalc program due to an endless loop. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38818 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/network/ipv6')
-rw-r--r--package/network/ipv6/6rd/src/6rdcalc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/package/network/ipv6/6rd/src/6rdcalc.c b/package/network/ipv6/6rd/src/6rdcalc.c
index 56e07d255b..87bc397006 100644
--- a/package/network/ipv6/6rd/src/6rdcalc.c
+++ b/package/network/ipv6/6rd/src/6rdcalc.c
@@ -110,7 +110,7 @@ int main(int argc, const char **argv)
/* Clear remaining bits. */
while (v6it < 128) {
- byte6 = (unsigned char *)(&v6.s6_addr) + (v6it >> 2);
+ byte6 = (unsigned char *)(&v6.s6_addr) + (v6it >> 3);
bit6 = 128 >> (v6it & 0x07);
*byte6 &= ~bit6;