summaryrefslogtreecommitdiff
path: root/sftp-client.c
diff options
context:
space:
mode:
Diffstat (limited to 'sftp-client.c')
-rw-r--r--sftp-client.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sftp-client.c b/sftp-client.c
index 80f4805cb..5dbeb47c0 100644
--- a/sftp-client.c
+++ b/sftp-client.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: sftp-client.c,v 1.117 2015/01/20 23:14:00 deraadt Exp $ */ 1/* $OpenBSD: sftp-client.c,v 1.120 2015/05/28 04:50:53 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org> 3 * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
4 * 4 *
@@ -408,6 +408,7 @@ do_init(int fd_in, int fd_out, u_int transfer_buflen, u_int num_requests,
408 error("Invalid packet back from SSH2_FXP_INIT (type %u)", 408 error("Invalid packet back from SSH2_FXP_INIT (type %u)",
409 type); 409 type);
410 sshbuf_free(msg); 410 sshbuf_free(msg);
411 free(ret);
411 return(NULL); 412 return(NULL);
412 } 413 }
413 if ((r = sshbuf_get_u32(msg, &ret->version)) != 0) 414 if ((r = sshbuf_get_u32(msg, &ret->version)) != 0)
@@ -621,7 +622,7 @@ do_lsreaddir(struct sftp_conn *conn, const char *path, int print_flag,
621 error("Server sent suspect path \"%s\" " 622 error("Server sent suspect path \"%s\" "
622 "during readdir of \"%s\"", filename, path); 623 "during readdir of \"%s\"", filename, path);
623 } else if (dir) { 624 } else if (dir) {
624 *dir = xrealloc(*dir, ents + 2, sizeof(**dir)); 625 *dir = xreallocarray(*dir, ents + 2, sizeof(**dir));
625 (*dir)[ents] = xcalloc(1, sizeof(***dir)); 626 (*dir)[ents] = xcalloc(1, sizeof(***dir));
626 (*dir)[ents]->filename = xstrdup(filename); 627 (*dir)[ents]->filename = xstrdup(filename);
627 (*dir)[ents]->longname = xstrdup(longname); 628 (*dir)[ents]->longname = xstrdup(longname);
@@ -1384,7 +1385,9 @@ do_download(struct sftp_conn *conn, const char *remote_path,
1384 "server reordered requests", local_path); 1385 "server reordered requests", local_path);
1385 } 1386 }
1386 debug("truncating at %llu", (unsigned long long)highwater); 1387 debug("truncating at %llu", (unsigned long long)highwater);
1387 ftruncate(local_fd, highwater); 1388 if (ftruncate(local_fd, highwater) == -1)
1389 error("ftruncate \"%s\": %s", local_path,
1390 strerror(errno));
1388 } 1391 }
1389 if (read_error) { 1392 if (read_error) {
1390 error("Couldn't read from remote file \"%s\" : %s", 1393 error("Couldn't read from remote file \"%s\" : %s",