From 7af30b4cef9a64e357047234b5ec7e2d3b85677d Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Mon, 7 Sep 2015 16:21:15 +0000 Subject: [PATCH] map: ignore insignificant PSID bits Signed-off-by: Steven Barth SVN-Revision: 46804 --- package/network/ipv6/map/Makefile | 2 +- package/network/ipv6/map/src/mapcalc.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) 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]);