diff options
-rw-r--r-- | lib/ssh.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -1046,10 +1046,13 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) */ if(curl_strequal("pwd", sshc->quote_item->data)) { /* output debug output if that is requested */ - char tmp[PATH_MAX+1]; - - snprintf(tmp, PATH_MAX, "257 \"%s\" is current directory.\n", - sftp_scp->path); + char *tmp = aprintf("257 \"%s\" is current directory.\n", + sftp_scp->path); + if(!tmp) { + result = CURLE_OUT_OF_MEMORY; + state(conn, SSH_SFTP_CLOSE); + break; + } if(data->set.verbose) { Curl_debug(data, CURLINFO_HEADER_OUT, (char *)"PWD\n", 4, conn); Curl_debug(data, CURLINFO_HEADER_IN, tmp, strlen(tmp), conn); @@ -1058,6 +1061,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn, bool *block) current directory can be read very similar to how it is read when using ordinary FTP. */ result = Curl_client_write(conn, CLIENTWRITE_HEADER, tmp, strlen(tmp)); + free(tmp); state(conn, SSH_SFTP_NEXT_QUOTE); break; } |