From: Miroslav Lichvar Date: Mon, 14 Sep 2020 08:19:10 +0000 (+0200) Subject: test: fix ntp_core unit test X-Git-Tag: 4.0-pre4~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb8ee57b9ef488a2f2b9761765ef9fe87329a535;p=thirdparty%2Fchrony.git test: fix ntp_core unit test Fix setting of key_id in the response. Fixes: f6625717cdb0 ("test: improve ntp_core unit test") --- diff --git a/test/unit/ntp_core.c b/test/unit/ntp_core.c index 40a5ae22..82e27311 100644 --- a/test/unit/ntp_core.c +++ b/test/unit/ntp_core.c @@ -234,7 +234,9 @@ send_response(int interleaved, int authenticated, int allow_update, int valid_ts ((unsigned char *)res)[res_length - auth_len + random() % auth_len]++; break; case 3: - res_length -= 4 + 4 * (random() % (auth_len / 4)); + res_length -= 4 + auth_len; + auth_len = 4 * (random() % (auth_len / 4)); + res_length += 4 + auth_len; break; case 4: if (NTP_LVM_TO_VERSION(res->lvm) == 4 && random() % 2 && @@ -248,6 +250,7 @@ send_response(int interleaved, int authenticated, int allow_update, int valid_ts res_length += 4 + auth_len; } else { memset((unsigned char *)res + res_length, 0, 4); + auth_len += 4; res_length += 4; } break; @@ -256,6 +259,9 @@ send_response(int interleaved, int authenticated, int allow_update, int valid_ts } } + assert(res_length <= sizeof (*res)); + assert(res_length >= NTP_HEADER_LENGTH + auth_len); + if (authenticated) *(uint32_t *)((unsigned char *)res + res_length - auth_len - 4) = htonl(key_id); }