OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/cert/x509_certificate.h" | 5 #include "net/cert/x509_certificate.h" |
6 | 6 |
7 #include <limits.h> | 7 #include <limits.h> |
8 #include <stdlib.h> | 8 #include <stdlib.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
438 kFormatDecodePriority[i]); | 438 kFormatDecodePriority[i]); |
439 } | 439 } |
440 | 440 |
441 CertificateList results; | 441 CertificateList results; |
442 // No certificates parsed. | 442 // No certificates parsed. |
443 if (certificates.empty()) | 443 if (certificates.empty()) |
444 return results; | 444 return results; |
445 | 445 |
446 for (OSCertHandles::iterator it = certificates.begin(); | 446 for (OSCertHandles::iterator it = certificates.begin(); |
447 it != certificates.end(); ++it) { | 447 it != certificates.end(); ++it) { |
448 results.push_back(CreateFromHandle(*it, OSCertHandles())); | 448 scoped_refptr<X509Certificate> cert = |
| 449 CreateFromHandle(*it, OSCertHandles()); |
| 450 if (cert) |
| 451 results.push_back(std::move(cert)); |
449 FreeOSCertHandle(*it); | 452 FreeOSCertHandle(*it); |
450 } | 453 } |
451 | 454 |
452 return results; | 455 return results; |
453 } | 456 } |
454 | 457 |
455 void X509Certificate::Persist(base::Pickle* pickle) { | 458 void X509Certificate::Persist(base::Pickle* pickle) { |
456 DCHECK(cert_handle_); | 459 DCHECK(cert_handle_); |
457 // This would be an absolutely insane number of intermediates. | 460 // This would be an absolutely insane number of intermediates. |
458 if (intermediate_ca_certs_.size() > static_cast<size_t>(INT_MAX) - 1) { | 461 if (intermediate_ca_certs_.size() > static_cast<size_t>(INT_MAX) - 1) { |
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
719 RemoveFromCache(cert_handle_); | 722 RemoveFromCache(cert_handle_); |
720 FreeOSCertHandle(cert_handle_); | 723 FreeOSCertHandle(cert_handle_); |
721 } | 724 } |
722 for (size_t i = 0; i < intermediate_ca_certs_.size(); ++i) { | 725 for (size_t i = 0; i < intermediate_ca_certs_.size(); ++i) { |
723 RemoveFromCache(intermediate_ca_certs_[i]); | 726 RemoveFromCache(intermediate_ca_certs_[i]); |
724 FreeOSCertHandle(intermediate_ca_certs_[i]); | 727 FreeOSCertHandle(intermediate_ca_certs_[i]); |
725 } | 728 } |
726 } | 729 } |
727 | 730 |
728 } // namespace net | 731 } // namespace net |
OLD | NEW |