Skip to content

Commit 3a89cea

Browse files
committed
ari: Nil check for RetryAfter time in storedCert
Fixes a reported panic
1 parent d461cbc commit 3a89cea

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

maintain.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -419,16 +419,16 @@ func (certCache *Cache) updateOCSPStaples(ctx context.Context) {
419419
// than that of a certificate that is already loaded, along with the value from
420420
// storage.
421421
func (cfg *Config) storageHasNewerARI(ctx context.Context, cert Certificate) (bool, acme.RenewalInfo, error) {
422-
storedCertData, err := cfg.loadStoredACMECertificateMetadata(ctx, cert)
423-
if err != nil || storedCertData.RenewalInfo == nil {
422+
storedCert, err := cfg.loadStoredACMECertificateMetadata(ctx, cert)
423+
if err != nil || storedCert.RenewalInfo == nil || storedCert.RenewalInfo.RetryAfter == nil {
424424
return false, acme.RenewalInfo{}, err
425425
}
426426
// prefer stored info if it has a window and the loaded one doesn't,
427427
// or if the one in storage has a later RetryAfter (though I suppose
428428
// it's not guaranteed, typically those will move forward in time)
429-
if (!cert.ari.HasWindow() && storedCertData.RenewalInfo.HasWindow()) ||
430-
(cert.ari.RetryAfter == nil || storedCertData.RenewalInfo.RetryAfter.After(*cert.ari.RetryAfter)) {
431-
return true, *storedCertData.RenewalInfo, nil
429+
if (!cert.ari.HasWindow() && storedCert.RenewalInfo.HasWindow()) ||
430+
(cert.ari.RetryAfter == nil || storedCert.RenewalInfo.RetryAfter.After(*cert.ari.RetryAfter)) {
431+
return true, *storedCert.RenewalInfo, nil
432432
}
433433
return false, acme.RenewalInfo{}, nil
434434
}

0 commit comments

Comments
 (0)