Index: net/ssl/server_bound_cert_service.cc |
diff --git a/net/ssl/server_bound_cert_service.cc b/net/ssl/server_bound_cert_service.cc |
index 61d610b5bb625378973371b49fca4e261f60720c..b6b67c2fce73486be54e35207e0b984c7649e84c 100644 |
--- a/net/ssl/server_bound_cert_service.cc |
+++ b/net/ssl/server_bound_cert_service.cc |
@@ -516,9 +516,10 @@ void ServerBoundCertService::GotServerBoundCert( |
HandleResult(OK, server_identifier, key, cert); |
return; |
} |
- // Async lookup did not find a valid cert. If no request asked to create one, |
- // return the error directly. |
- if (!j->second->CreateIfMissing()) { |
+ // Async lookup failed or the certificate was missing. Return the error |
+ // directly, unless the certificate was missing and a request asked to create |
+ // one. |
+ if (err != ERR_FILE_NOT_FOUND || !j->second->CreateIfMissing()) { |
HandleResult(err, server_identifier, key, cert); |
return; |
} |