From: Ian Jackson Date: Tue, 14 May 2019 23:42:16 +0000 (+0100) Subject: Introduce transform_apply_seqdupe X-Git-Tag: v0.4.4~10 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=commitdiff_plain;h=34afe8d7b8a75eddd44cccb8e6d8d35fa17a47d9 Introduce transform_apply_seqdupe This distinguishes the two cases. Right now they are still handled the same everywhere. No functional change. Signed-off-by: Ian Jackson --- diff --git a/secnet.h b/secnet.h index 21b94c0..e253a14 100644 --- a/secnet.h +++ b/secnet.h @@ -548,12 +548,15 @@ typedef enum { transform_apply_ok = 0, /* all is well (everyone may assume==0) */ transform_apply_err = 1, /* any other problem */ transform_apply_seqrange = 2, - /* message decrypted but sequence number was out of range */ + /* message decrypted but sequence number was out of recent range */ + transform_apply_seqdupe = 3, + /* message decrypted but was dupe of recent packet */ } transform_apply_return; static inline bool_t transform_apply_return_badseq(transform_apply_return problem) { - return problem == transform_apply_seqrange; + return problem == transform_apply_seqrange || + problem == transform_apply_seqdupe; } typedef transform_apply_return transform_apply_fn(void *st, diff --git a/transform-common.h b/transform-common.h index 2e78833..74e08ea 100644 --- a/transform-common.h +++ b/transform-common.h @@ -53,7 +53,7 @@ typedef uint32_t recvbitmap_type; recvbitmap_type recvbit=(uint32_t)1 << skew; \ if (ti->recvbitmap & recvbit) { \ *errmsg="seqnum: duplicate"; \ - return transform_apply_seqrange; \ + return transform_apply_seqdupe; \ } \ ti->recvbitmap |= recvbit; \ } \