RootCauseunvalidated
strpbrk(url, "@/?#;") — ';' in scan set is the bug — for HTTP, init_seps returns ":/?#" (no semicolon since HTTP lacks scm_has_params). Tension: when url_skip_credentials returns the original pointer, host_b includes userinfo+@+hostname as one string. Outcome: The old code conflated per-component delimiters.
23be9b14-c1a1-4531-8205-8ec55d1a6536
strpbrk(url, "@/?#;") — ';' in scan set is the bug — for HTTP, init_seps returns ":/?#" (no semicolon since HTTP lacks scm_has_params). Tension: when url_skip_credentials returns the original pointer, host_b includes userinfo+@+hostname as one string. Outcome: The old code conflated per-component delimiters.