An existing route with lifetime can be always updated with a new
finite lifetime. As the comment in the code says, we cannot disable the
lifetime. So, the condition must be '==', rather than '!='.
Fixes #33210.
return false;
if (existing->pref != requesting->pref)
return false;
- if (existing->expiration_managed_by_kernel && requesting->lifetime_usec != USEC_INFINITY)
+ if (existing->expiration_managed_by_kernel && requesting->lifetime_usec == USEC_INFINITY)
return false; /* We cannot disable expiration timer in the kernel. */
if (!route_metric_can_update(&existing->metric, &requesting->metric, existing->expiration_managed_by_kernel))
return false;