diff options
author | Daniel Stenberg <daniel@haxx.se> | 2011-01-03 13:34:13 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2011-01-03 13:36:45 +0100 |
commit | 45cea7196870f2b5e7096a619dc1a9725295ca1a (patch) | |
tree | 0d48639dca49bce675c23d50e2c11c686ae67ef2 /lib | |
parent | 569202c9a4efa15831cc260cea44d2756fbcac59 (diff) |
SSH: avoid PATH_MAX with alloc
We cannot assume that PATH_MAX will be enough for the remote path name
so allocating room for it is the only sensible approach.
Diffstat (limited to 'lib')
-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; } |