diff options
author | Colin Watson <cjwatson@debian.org> | 2015-08-19 17:00:17 +0100 |
---|---|---|
committer | Colin Watson <cjwatson@debian.org> | 2015-08-19 17:00:17 +0100 |
commit | 544df7a04ae5b5c1fc30be7c445ad685d7a02dc9 (patch) | |
tree | 33d2a87dd50fe5894ac6ec4579c83401b7ab00a4 /sftp-client.c | |
parent | baccdb349b31c47cd76fb63211f754ed33a9707e (diff) | |
parent | 7de4b03a6e4071d454b72927ffaf52949fa34545 (diff) |
Import openssh_6.9p1.orig.tar.gz
Diffstat (limited to 'sftp-client.c')
-rw-r--r-- | sftp-client.c | 9 |
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", |