From: Steven Barth <cyrus@openwrt.org>
Date: Mon, 7 Sep 2015 16:21:15 +0000 (+0000)
Subject: map: ignore insignificant PSID bits
X-Git-Tag: reboot~2121
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=7af30b4cef9a64e357047234b5ec7e2d3b85677d;p=openwrt%2Fstaging%2Fjogo.git

map: ignore insignificant PSID bits

Signed-off-by: Steven Barth <steven@midlink.org>

SVN-Revision: 46804
---

diff --git a/package/network/ipv6/map/Makefile b/package/network/ipv6/map/Makefile
index a45e9bc1fd..1d423150b9 100644
--- a/package/network/ipv6/map/Makefile
+++ b/package/network/ipv6/map/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=map
 PKG_VERSION:=4
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 PKG_LICENSE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk
diff --git a/package/network/ipv6/map/src/mapcalc.c b/package/network/ipv6/map/src/mapcalc.c
index b9fab4d923..7aa28e57d5 100644
--- a/package/network/ipv6/map/src/mapcalc.c
+++ b/package/network/ipv6/map/src/mapcalc.c
@@ -314,7 +314,9 @@ int main(int argc, char *argv[])
 			psid = be16_to_cpu(psid16);
 		}
 
-		psid16 = cpu_to_be16(psid >> (16 - psidlen));
+		psid = psid >> (16 - psidlen);
+		psid16 = cpu_to_be16(psid);
+		psid = psid << (16 - psidlen);
 
 		if (prefix4len < 0 || prefix6len < 0 || ealen < 0 || ealen < psidlen) {
 			fprintf(stderr, "Skipping invalid or incomplete rule: %s\n", argv[i]);