you can't strcasecmp on 20-byte digests

what if they contain nuls?
(worse, what if they *don't* contain nuls? ;)


svn:r15149
This commit is contained in:
Roger Dingledine
2008-06-11 22:46:31 +00:00
parent dedcc7c34b
commit 6bd006bdb8
+4 -4
View File
@@ -1026,8 +1026,8 @@ find_intro_circuit(rend_intro_point_t *intro, const char *pk_digest,
tor_assert(intro);
while ((circ = circuit_get_next_by_pk_and_purpose(circ,pk_digest,
CIRCUIT_PURPOSE_S_INTRO))) {
if (!strcasecmp(circ->build_state->chosen_exit->identity_digest,
intro->extend_info->identity_digest) &&
if (!memcmp(circ->build_state->chosen_exit->identity_digest,
intro->extend_info->identity_digest, DIGEST_LEN) &&
circ->rend_desc_version == desc_version) {
return circ;
}
@@ -1036,8 +1036,8 @@ find_intro_circuit(rend_intro_point_t *intro, const char *pk_digest,
circ = NULL;
while ((circ = circuit_get_next_by_pk_and_purpose(circ,pk_digest,
CIRCUIT_PURPOSE_S_ESTABLISH_INTRO))) {
if (!strcasecmp(circ->build_state->chosen_exit->identity_digest,
intro->extend_info->identity_digest) &&
if (!memcmp(circ->build_state->chosen_exit->identity_digest,
intro->extend_info->identity_digest, DIGEST_LEN) &&
circ->rend_desc_version == desc_version) {
return circ;
}