Skip to content

Commit

Permalink
crypto: more compact solution to detect endless loop
Browse files Browse the repository at this point in the history
  • Loading branch information
nils91 committed Mar 31, 2021
1 parent 958f321 commit bd978e1
Showing 1 changed file with 5 additions and 8 deletions.
13 changes: 5 additions & 8 deletions src/crypto/crypto_common.cc
Original file line number Diff line number Diff line change
Expand Up @@ -480,17 +480,14 @@ MaybeLocal<Object> GetLastIssuedCert(
return MaybeLocal<Object>();
issuer_chain = ca_info;

// Take the value of cert->get() before and after the call to cert->reset()
// in order to compare them and provide a way to exit this loop
// in case it gets stuck
X509* value_before_reset = cert->get();
// Take the value of cert->get(), compare it with the value of ca
// and provide a way to exit this loop
// in case it gets stuck.
if (cert->get() == ca)
break;

// Delete previous cert and continue aggregating issuers.
cert->reset(ca);

X509* value_after_reset = cert->get();
if (value_before_reset == value_after_reset)
break;
}
return MaybeLocal<Object>(issuer_chain);
}
Expand Down

0 comments on commit bd978e1

Please sign in to comment.