tool: fix two more allocator mismatches

memory allocated by libcurl (curl_maprintf) must be freed with
curl_free(), and memory allocated by the tool (curlx_strdup via
findfile) must be freed with curlx_free().

- tool_cfgable: ech_config is allocated with curl_maprintf, free it
  with curl_free() instead of tool_safefree()
- config2setopts: known hosts from findfile() is allocated with
  curlx_strdup, free it with curlx_free() instead of curl_free()

Follow-up to b71973c115

Closes #21150
This commit is contained in:
MarkLee131 2026-03-30 00:59:24 +08:00 committed by Daniel Stenberg
parent 2c26cea5ec
commit 9fcc7e4c43
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
3 changed files with 21 additions and 7 deletions

View file

@ -1267,10 +1267,16 @@ static ParameterError parse_ech(struct OperationConfig *config,
curlx_fclose(file);
if(err)
return err;
config->ech_config = curl_maprintf("ecl:%s", tmpcfg);
curlx_free(tmpcfg);
if(!config->ech_config)
return PARAM_NO_MEM;
{
char *tmp = curl_maprintf("ecl:%s", tmpcfg);
curlx_free(tmpcfg);
if(!tmp)
return PARAM_NO_MEM;
config->ech_config = curlx_strdup(tmp);
curl_free(tmp);
if(!config->ech_config)
return PARAM_NO_MEM;
}
} /* file done */
}
else {