--- /dev/null
+ o Minor features (security):
+ - Apply the secure SipHash-2-4 function to the hash table mapping
+ circuit IDs and channels to circuits. We missed this one when we
+ were converting all the other hash functions to use SipHash back
+ in 0.2.5.3-alpha. Resolves ticket 11750.
static INLINE unsigned int
chan_circid_entry_hash_(chan_circid_circuit_map_t *a)
{
- return ((unsigned)a->circ_id) ^ (unsigned)(uintptr_t)(a->chan);
+ struct {
+ void *chan;
+ circid_t circid;
+ } s;
+ memset(&s, 0, sizeof(s));
+ s.chan = a->chan;
+ s.circid = a->circ_id;
+ return (unsigned) siphash24g(&s, sizeof(s));
}
/** Map from [chan,circid] to circuit. */