Skip to main content

hash_identifier

Function hash_identifier 

Source
fn hash_identifier(parts: &[&str]) -> String
Expand description

Digests parts framed by PART_SEPARATOR, dropping the separator wherever a part contains it itself.

Without that the framing is forgeable: the service name, message and stack trace of an error report are whatever the reporter sent, and a separator placed where one part ends lets a crafted report claim another error’s identity and merge into its aggregate. Dropping rather than escaping keeps every identifier already stored valid, and loses nothing real, since Postgres cannot hold a null byte in a text column anyway.