net.urllib: avoid a double free in set_path() when compiled with -autofree (#11427)

pull/11438/head
Dialga 2021-09-08 06:11:03 +12:00 committed by GitHub
parent 79c2bca401
commit 00433ba460
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 9 deletions

View File

@ -622,15 +622,8 @@ fn parse_host(host string) ?string {
// set_path will return an error only if the provided path contains an invalid
// escaping.
pub fn (mut u URL) set_path(p string) ?bool {
path := unescape(p, .encode_path) ?
u.path = path
escp := escape(path, .encode_path)
if p == escp {
// Default encoding is fine.
u.raw_path = ''
} else {
u.raw_path = p
}
u.path = unescape(p, .encode_path) ?
u.raw_path = if p == escape(u.path, .encode_path) { '' } else { p }
return true
}