summaryrefslogtreecommitdiffstats
path: root/sys/netgraph/ng_ppp.c
diff options
context:
space:
mode:
authorarchie <archie@FreeBSD.org>2000-10-06 20:36:17 +0000
committerarchie <archie@FreeBSD.org>2000-10-06 20:36:17 +0000
commit79dad751f1740b5fe1b1bda4b26f5a8813103804 (patch)
treeb3f2fae7720f7b07bca567f731b89ee485f8b1dd /sys/netgraph/ng_ppp.c
parent6cb9b73b378845635fbbf60f77bf7110db90de5c (diff)
downloadFreeBSD-src-79dad751f1740b5fe1b1bda4b26f5a8813103804.zip
FreeBSD-src-79dad751f1740b5fe1b1bda4b26f5a8813103804.tar.gz
Fix bug in handling of multi-link sequence numbers.
Reported by: Becca Anderson <becca@worldint.com>
Diffstat (limited to 'sys/netgraph/ng_ppp.c')
-rw-r--r--sys/netgraph/ng_ppp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/netgraph/ng_ppp.c b/sys/netgraph/ng_ppp.c
index 846002b..a179236 100644
--- a/sys/netgraph/ng_ppp.c
+++ b/sys/netgraph/ng_ppp.c
@@ -103,8 +103,10 @@
((s) | ~MP_LONG_SEQ_MASK) : (s))
/* Comparision of MP sequence numbers */
-#define MP_SHORT_SEQ_DIFF(x,y) (MP_SHORT_EXTEND(x) - MP_SHORT_EXTEND(y))
-#define MP_LONG_SEQ_DIFF(x,y) (MP_LONG_EXTEND(x) - MP_LONG_EXTEND(y))
+#define MP_SHORT_SEQ_DIFF(x,y) \
+ (MP_SHORT_EXTEND(((x) & MP_SHORT_SEQ_MASK) - ((y) & MP_SHORT_SEQ_MASK)))
+#define MP_LONG_SEQ_DIFF(x,y) \
+ (MP_LONG_EXTEND(((x) & MP_LONG_SEQ_MASK) - ((y) & MP_LONG_SEQ_MASK)))
#define MP_SEQ_DIFF(priv,x,y) ((priv)->conf.recvShortSeq ? \
MP_SHORT_SEQ_DIFF((x), (y)) : \
OpenPOWER on IntegriCloud