From e71542a9d9d043db454a49a35440332ec893cf04 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 19 Jan 2021 10:43:44 +0100 Subject: [PATCH] curl_path: remove conn->data use Closes #6487 --- lib/curl_path.c | 9 ++++----- lib/curl_path.h | 4 ++-- lib/vssh/libssh.c | 6 ++---- lib/vssh/libssh2.c | 4 ++-- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/lib/curl_path.c b/lib/curl_path.c index 8c8cbc246..6100d77bd 100644 --- a/lib/curl_path.c +++ b/lib/curl_path.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2020, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2021, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -31,12 +31,11 @@ #include "memdebug.h" /* figure out the path to work with in this particular request */ -CURLcode Curl_getworkingpath(struct connectdata *conn, +CURLcode Curl_getworkingpath(struct Curl_easy *data, char *homedir, /* when SFTP is used */ char **path) /* returns the allocated real path to work with */ { - struct Curl_easy *data = conn->data; char *real_path = NULL; char *working_path; size_t working_path_len; @@ -47,7 +46,7 @@ CURLcode Curl_getworkingpath(struct connectdata *conn, return result; /* Check for /~/, indicating relative to the user's home directory */ - if(conn->handler->protocol & CURLPROTO_SCP) { + if(data->conn->handler->protocol & CURLPROTO_SCP) { real_path = malloc(working_path_len + 1); if(real_path == NULL) { free(working_path); @@ -59,7 +58,7 @@ CURLcode Curl_getworkingpath(struct connectdata *conn, else memcpy(real_path, working_path, 1 + working_path_len); } - else if(conn->handler->protocol & CURLPROTO_SFTP) { + else if(data->conn->handler->protocol & CURLPROTO_SFTP) { if((working_path_len > 1) && (working_path[1] == '~')) { size_t homelen = strlen(homedir); real_path = malloc(homelen + working_path_len + 1); diff --git a/lib/curl_path.h b/lib/curl_path.h index b601b48df..a376bd1d2 100644 --- a/lib/curl_path.h +++ b/lib/curl_path.h @@ -7,7 +7,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2020, Daniel Stenberg, , et al. + * Copyright (C) 1998 - 2021, Daniel Stenberg, , et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -39,7 +39,7 @@ have their definition hidden well */ #endif -CURLcode Curl_getworkingpath(struct connectdata *conn, +CURLcode Curl_getworkingpath(struct Curl_easy *data, char *homedir, char **path); diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c index e702b67b1..08896ab5b 100644 --- a/lib/vssh/libssh.c +++ b/lib/vssh/libssh.c @@ -965,8 +965,7 @@ static CURLcode myssh_statemach_act(struct Curl_easy *data, bool *block) break; case SSH_SFTP_QUOTE_INIT: - - result = Curl_getworkingpath(conn, sshc->homedir, &protop->path); + result = Curl_getworkingpath(data, sshc->homedir, &protop->path); if(result) { sshc->actualcode = result; state(data, SSH_STOP); @@ -1781,9 +1780,8 @@ static CURLcode myssh_statemach_act(struct Curl_easy *data, bool *block) state(data, SSH_SESSION_DISCONNECT); break; - case SSH_SCP_TRANS_INIT: - result = Curl_getworkingpath(conn, sshc->homedir, &protop->path); + result = Curl_getworkingpath(data, sshc->homedir, &protop->path); if(result) { sshc->actualcode = result; state(data, SSH_STOP); diff --git a/lib/vssh/libssh2.c b/lib/vssh/libssh2.c index f2921352d..0e2d6f824 100644 --- a/lib/vssh/libssh2.c +++ b/lib/vssh/libssh2.c @@ -1275,7 +1275,7 @@ static CURLcode ssh_statemach_act(struct Curl_easy *data, bool *block) case SSH_SFTP_QUOTE_INIT: - result = Curl_getworkingpath(conn, sshc->homedir, &sftp_scp->path); + result = Curl_getworkingpath(data, sshc->homedir, &sftp_scp->path); if(result) { sshc->actualcode = result; state(data, SSH_STOP); @@ -2503,7 +2503,7 @@ static CURLcode ssh_statemach_act(struct Curl_easy *data, bool *block) break; case SSH_SCP_TRANS_INIT: - result = Curl_getworkingpath(conn, sshc->homedir, &sftp_scp->path); + result = Curl_getworkingpath(data, sshc->homedir, &sftp_scp->path); if(result) { sshc->actualcode = result; state(data, SSH_STOP);