1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-27 07:21:18 +01:00

gnrc_ipv6_nib: ignore corner case when adding to PL

In #8135 the handling of corner cases for the conversion of
milliseconds to seconds, but the internal handling was not adapted.
This commit is contained in:
Martine Lenders 2018-01-30 12:28:45 +01:00
parent 20780aacab
commit 8e80a372cb

View File

@ -764,12 +764,17 @@ _nib_offl_entry_t *_nib_pl_add(unsigned iface,
if (pref_ltime != UINT32_MAX) {
_evtimer_add(dst, GNRC_IPV6_NIB_PFX_TIMEOUT, &dst->pfx_timeout,
pref_ltime);
if (((pref_ltime + now) == UINT32_MAX) && (now != 0)) {
pref_ltime++;
/* ignore capped of preferred lifetimes from sec to ms conversion */
if (pref_ltime < (UINT32_MAX - 1)) {
/* prevent pref_ltime from becoming UINT32_MAX */
if (((pref_ltime + now) == UINT32_MAX) && (now != 0)) {
pref_ltime++;
}
pref_ltime += now;
}
pref_ltime += now;
}
if (valid_ltime != UINT32_MAX) {
/* ignore capped of valid lifetimes from sec to ms conversion */
if (valid_ltime < (UINT32_MAX - 1)) {
/* prevent valid_ltime from becoming UINT32_MAX */
if ((valid_ltime + now) == UINT32_MAX) {
valid_ltime++;