mirror of
https://github.com/curl/curl.git
synced 2026-08-25 20:13:35 +03:00
Michal Marek forwarded the bug report
https://bugzilla.novell.com/show_bug.cgi?id=332917 about a HTTP redirect to FTP that caused memory havoc. His work together with my efforts created two fixes: #1 - FTP::file was moved to struct ftp_conn, because is has to be dealt with at connection cleanup, at which time the struct HandleData could be used by another connection. Also, the unused char *urlpath member is removed from struct FTP. #2 - provide a Curl_reset_reqproto() function that frees data->reqdata.proto.* on connection setup if needed (that is if the SessionHandle was used by a different connection).
This commit is contained in:
parent
3910a61b61
commit
5b358603bd
9 changed files with 116 additions and 62 deletions
|
|
@ -1846,10 +1846,9 @@ static CURLcode Curl_ssh_connect(struct connectdata *conn, bool *done)
|
|||
CURLcode result;
|
||||
struct SessionHandle *data = conn->data;
|
||||
|
||||
if (data->reqdata.proto.ssh) {
|
||||
Curl_safefree(data->reqdata.proto.ssh);
|
||||
data->reqdata.proto.ssh = NULL;
|
||||
}
|
||||
/* If there already is a protocol-specific struct allocated for this
|
||||
sessionhandle, deal with it */
|
||||
Curl_reset_reqproto(conn);
|
||||
|
||||
result = ssh_init(conn);
|
||||
if (result)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue