diff options
author | Ryo Nakamura <upa@haeena.net> | 2024-03-09 16:06:44 +0900 |
---|---|---|
committer | Ryo Nakamura <upa@haeena.net> | 2024-03-09 16:06:44 +0900 |
commit | 9d02fc9122cb32a5aeeaea4b694447e1ff751c94 (patch) | |
tree | bc414e62372d4c8d190aea782d846a82b5f5e666 | |
parent | 0e80f089be57e8c1e607551d0cf9c9701a5f213c (diff) |
sftp_async_write: bit cleanup error messaging
-rw-r--r-- | patch/libssh-0.10.6-2-g6f1b1e76.patch | 13 | ||||
-rw-r--r-- | src/path.c | 8 |
2 files changed, 12 insertions, 9 deletions
diff --git a/patch/libssh-0.10.6-2-g6f1b1e76.patch b/patch/libssh-0.10.6-2-g6f1b1e76.patch index b5c88bc..8db9213 100644 --- a/patch/libssh-0.10.6-2-g6f1b1e76.patch +++ b/patch/libssh-0.10.6-2-g6f1b1e76.patch @@ -392,10 +392,10 @@ index 8c509699..307388e5 100644 session->opts.flags = SSH_OPT_FLAG_PASSWORD_AUTH | SSH_OPT_FLAG_PUBKEY_AUTH | diff --git a/src/sftp.c b/src/sftp.c -index e01012a8..702623a0 100644 +index e01012a8..3b86c3c6 100644 --- a/src/sftp.c +++ b/src/sftp.c -@@ -2228,6 +2228,132 @@ ssize_t sftp_write(sftp_file file, const void *buf, size_t count) { +@@ -2228,6 +2228,135 @@ ssize_t sftp_write(sftp_file file, const void *buf, size_t count) { return -1; /* not reached */ } @@ -434,7 +434,8 @@ index e01012a8..702623a0 100644 + + buffer = ssh_buffer_new_size(buf_sz, HEADROOM); + if (buffer == NULL) { -+ ssh_set_error_oom(sftp->session); ++ ssh_set_error(sftp->session, SSH_FATAL, ++ "ssh_buffer_new_size failed: Out of Memory"); + return -1; + } + @@ -448,14 +449,16 @@ index e01012a8..702623a0 100644 + count); /* len of datastring */ + + if (rc != SSH_OK){ -+ ssh_set_error_oom(sftp->session); ++ ssh_set_error(sftp->session, SSH_FATAL, ++ "ssh_buffer_pack failed: Out of Memory"); + ssh_buffer_free(buffer); + return SSH_ERROR; + } + + actual = ssh_buffer_add_func(buffer, f, count, userdata); + if (actual < 0){ -+ ssh_set_error_oom(sftp->session); ++ ssh_set_error(sftp->session, SSH_FATAL, ++ "ssh_buffer_add_func failed: %s", strerror(errno)); + ssh_buffer_free(buffer); + return SSH_ERROR; + } @@ -366,8 +366,8 @@ static int copy_chunk_l2r(struct chunk *c, int fd, sftp_file sf, int nr_ahead, i reqs[idx].len = sftp_async_write(sf, read_to_buf, reqs[idx].len, &fd, &reqs[idx].id); if (reqs[idx].len < 0) { - priv_set_errv("sftp_async_write: %s or %s", - sftp_get_ssh_error(sf->sftp), strerrno()); + priv_set_errv("sftp_async_write: %s", + sftp_get_ssh_error(sf->sftp)); return -1; } thrown -= reqs[idx].len; @@ -394,8 +394,8 @@ static int copy_chunk_l2r(struct chunk *c, int fd, sftp_file sf, int nr_ahead, i reqs[idx].len = sftp_async_write(sf, read_to_buf, reqs[idx].len, &fd, &reqs[idx].id); if (reqs[idx].len < 0) { - priv_set_errv("sftp_async_write: %s or %s", - sftp_get_ssh_error(sf->sftp), strerrno()); + priv_set_errv("sftp_async_write: %s", + sftp_get_ssh_error(sf->sftp)); return -1; } thrown -= reqs[idx].len; |