- Stop using malloc_usable_size() to use more area than we had
actually allocated: it was safe, but made valgrind really
unhappy. Bugfix on 0.2.0.x.
+ - Fix use of freed memory when deciding to mark a non-addable
+ descriptor as never-downloadable. Bugfix on 0.2.1.9-alpha.
Changes in version 0.2.1.14-rc - 2009-04-12
SMARTLIST_FOREACH_BEGIN(routers, routerinfo_t *, ri) {
was_router_added_t r;
+ char d[DIGEST_LEN];
if (requested_fingerprints) {
base16_encode(fp, sizeof(fp), descriptor_digests ?
ri->cache_info.signed_descriptor_digest :
}
}
+ memcpy(d, ri->cache_info.signed_descriptor_digest, DIGEST_LEN);
r = router_add_to_routerlist(ri, &msg, from_cache, !from_cache);
if (WRA_WAS_ADDED(r)) {
any_changed++;
smartlist_clear(changed);
} else if (WRA_WAS_REJECTED(r)) {
download_status_t *dl_status;
- dl_status = router_get_dl_status_by_descriptor_digest(
- ri->cache_info.signed_descriptor_digest);
+ dl_status = router_get_dl_status_by_descriptor_digest(d);
if (dl_status) {
log_info(LD_GENERAL, "Marking router %s as never downloadable",
- hex_str(ri->cache_info.signed_descriptor_digest, DIGEST_LEN));
+ hex_str(d, DIGEST_LEN));
download_status_mark_impossible(dl_status);
}
}