In node_exit_policy_rejects_all(), we check IPv4 and IPv6 policies on ri, but on md we only check IPv4:
else if (node->md) return node->md->exit_policy == NULL || short_policy_is_reject_star(node->md->exit_policy);
One way to fix this issue is to refactor the existing code to check a new policy_is_reject_star, and then populate policy_is_reject_star when the md is parsed. (Like we already do with the ri.)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items 0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items 0
Link issues together to show that they're related.
Learn more.
Deferring 51 tickets from 0.4.0.x-final. Tagging them with 040-deferred-20190220 for visibility. These are the tickets that did not get 040-must, 040-can, or tor-ci.
if this is the case with md only, is the journey until fix to go with:
{{{
UseMicrodescriptors 0
}}}
?
This is a question not a fix? But the question is, it is the fix? Who knows?
This looks better to me. I'd like to turn the boolean back into a bitfield, but move it to be next to the other bitfields, in order to save memory.
Teor, do you think we will want to backport this? If so I want to rebase it before merging--but I am not sure how necessary a backport is, or how difficult it would be.
Before this fix, exits that reject IPv4 but accept IPv6 are marked as "rejects all".
After this fix, exits that reject IPv4 but accept IPv6 are marked as "accepts some".
These exits are rare, so the change is not worth backporting.