fix: avoid Int63n panic in ShouldRenewAt() #2246
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
https://www.ietf.org/archive/id/draft-ietf-acme-ari-04.html#section-4.2 says:
Currently when lego encounters an ARI renewal window that specifies "an end timestamp which is equal to or precedes the start timestamp", the following panic occurs:
https://pkg.go.dev/math/rand#Rand.Int63n documents this behaviour: "It panics if n <= 0".
This PR avoids panicking when the renewal window is "malformed", and instead makes "its own determination" that the
start
timestamp is "when to renew the certificate".