From ce321d8a30a81222d11a4c27fd353804a9afecd3 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Mon, 3 Oct 2005 18:11:24 +1000 Subject: - djm@cvs.openbsd.org 2005/09/13 23:40:07 [sshd.c ssh.c misc.h sftp.c ssh-keygen.c ssh-keysign.c sftp-server.c scp.c misc.c ssh-keyscan.c ssh-add.c ssh-agent.c] ensure that stdio fds are attached; ok deraadt@ --- sftp-server.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'sftp-server.c') diff --git a/sftp-server.c b/sftp-server.c index 6870e7732..e7d000cff 100644 --- a/sftp-server.c +++ b/sftp-server.c @@ -14,13 +14,14 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include "includes.h" -RCSID("$OpenBSD: sftp-server.c,v 1.48 2005/06/17 02:44:33 djm Exp $"); +RCSID("$OpenBSD: sftp-server.c,v 1.49 2005/09/13 23:40:07 djm Exp $"); #include "buffer.h" #include "bufaux.h" #include "getput.h" #include "log.h" #include "xmalloc.h" +#include "misc.h" #include "sftp.h" #include "sftp-common.h" @@ -1036,6 +1037,9 @@ main(int ac, char **av) int in, out, max; ssize_t len, olen, set_size; + /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ + sanitise_stdfd(); + /* XXX should use getopt */ __progname = ssh_get_progname(av[0]); -- cgit v1.2.3 From e0be30426a18f3c8038f98cdb10171200b134d60 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 25 Nov 2005 14:44:55 +1100 Subject: - (dtucker) [progressmeter.c scp.c sftp-server.c] Use correct casts for snprintf formats, fixes warnings on some 64 bit platforms. Patch from shaw at vranix.com, ok djm@ --- ChangeLog | 5 ++++- progressmeter.c | 6 +++--- scp.c | 2 +- sftp-server.c | 4 ++-- 4 files changed, 10 insertions(+), 7 deletions(-) (limited to 'sftp-server.c') diff --git a/ChangeLog b/ChangeLog index f922e8d7e..1f65d2cfc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,9 @@ - (dtucker) [configure.ac] Apply tim's fix for older systems where the resolver state in resolv.h is "state" not "__res_state". With slight modification by me to also work on old AIXes. ok djm@ + - (dtucker) [progressmeter.c scp.c sftp-server.c] Use correct casts for + snprintf formats, fixes warnings on some 64 bit platforms. Patch from + shaw at vranix.com, ok djm@ 20051124 - (djm) [configure.ac openbsd-compat/Makefile.in openbsd-compat/bsd-asprintf.c @@ -3349,4 +3352,4 @@ - (djm) Trim deprecated options from INSTALL. Mention UsePAM - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu -$Id: ChangeLog,v 1.4006 2005/11/25 02:14:58 dtucker Exp $ +$Id: ChangeLog,v 1.4007 2005/11/25 03:44:55 dtucker Exp $ diff --git a/progressmeter.c b/progressmeter.c index 3cda09061..13c51d87e 100644 --- a/progressmeter.c +++ b/progressmeter.c @@ -85,8 +85,8 @@ format_rate(char *buf, int size, off_t bytes) bytes = (bytes + 512) / 1024; } snprintf(buf, size, "%3lld.%1lld%c%s", - (int64_t) (bytes + 5) / 100, - (int64_t) (bytes + 5) / 10 % 10, + (long long) (bytes + 5) / 100, + (long long) (bytes + 5) / 10 % 10, unit[i], i ? "B" : " "); } @@ -99,7 +99,7 @@ format_size(char *buf, int size, off_t bytes) for (i = 0; bytes >= 10000 && unit[i] != 'T'; i++) bytes = (bytes + 512) / 1024; snprintf(buf, size, "%4lld%c%s", - (int64_t) bytes, + (long long) bytes, unit[i], i ? "B" : " "); } diff --git a/scp.c b/scp.c index 59285abca..a19021f85 100644 --- a/scp.c +++ b/scp.c @@ -563,7 +563,7 @@ syserr: run_err("%s: %s", name, strerror(errno)); #define FILEMODEMASK (S_ISUID|S_ISGID|S_IRWXU|S_IRWXG|S_IRWXO) snprintf(buf, sizeof buf, "C%04o %lld %s\n", (u_int) (stb.st_mode & FILEMODEMASK), - (int64_t)stb.st_size, last); + (long long)stb.st_size, last); if (verbose_mode) { fprintf(stderr, "Sending file modes: %s", buf); } diff --git a/sftp-server.c b/sftp-server.c index e7d000cff..4fa07e2f5 100644 --- a/sftp-server.c +++ b/sftp-server.c @@ -428,7 +428,7 @@ process_read(void) len = get_int(); TRACE("read id %u handle %d off %llu len %d", id, handle, - (u_int64_t)off, len); + (unsigned long long)off, len); if (len > sizeof buf) { len = sizeof buf; logit("read change len %d", len); @@ -469,7 +469,7 @@ process_write(void) data = get_string(&len); TRACE("write id %u handle %d off %llu len %d", id, handle, - (u_int64_t)off, len); + (unsigned long long)off, len); fd = handle_to_fd(handle); if (fd >= 0) { if (lseek(fd, off, SEEK_SET) < 0) { -- cgit v1.2.3 From 5444618987402d50fb9c6c722919fe2d428d05bb Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 2 Jan 2006 23:40:50 +1100 Subject: - djm@cvs.openbsd.org 2006/01/02 01:20:31 [sftp-client.c sftp-common.h sftp-server.c] use a common max. packet length, no binary change --- ChangeLog | 5 ++++- sftp-client.c | 9 +++------ sftp-common.h | 5 ++++- sftp-server.c | 4 ++-- 4 files changed, 13 insertions(+), 10 deletions(-) (limited to 'sftp-server.c') diff --git a/ChangeLog b/ChangeLog index b5a9c9bc5..7e8839305 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,9 @@ - stevesk@cvs.openbsd.org 2006/01/01 10:08:48 [misc.c] no trailing "\n" for debug() + - djm@cvs.openbsd.org 2006/01/02 01:20:31 + [sftp-client.c sftp-common.h sftp-server.c] + use a common max. packet length, no binary change 20060101 - (djm) [Makefile.in configure.ac includes.h misc.c] @@ -3610,4 +3613,4 @@ - (djm) Trim deprecated options from INSTALL. Mention UsePAM - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu -$Id: ChangeLog,v 1.4068 2006/01/02 12:40:30 djm Exp $ +$Id: ChangeLog,v 1.4069 2006/01/02 12:40:50 djm Exp $ diff --git a/sftp-client.c b/sftp-client.c index afbd1e6f3..05bce3368 100644 --- a/sftp-client.c +++ b/sftp-client.c @@ -20,7 +20,7 @@ /* XXX: copy between two remote sites */ #include "includes.h" -RCSID("$OpenBSD: sftp-client.c,v 1.57 2005/07/27 10:39:03 dtucker Exp $"); +RCSID("$OpenBSD: sftp-client.c,v 1.58 2006/01/02 01:20:31 djm Exp $"); #include "openbsd-compat/sys-queue.h" @@ -42,9 +42,6 @@ extern int showprogress; /* Minimum amount of data to read at at time */ #define MIN_READ_SIZE 512 -/* Maximum packet size */ -#define MAX_MSG_LENGTH (256 * 1024) - struct sftp_conn { int fd_in; int fd_out; @@ -59,7 +56,7 @@ send_msg(int fd, Buffer *m) { u_char mlen[4]; - if (buffer_len(m) > MAX_MSG_LENGTH) + if (buffer_len(m) > SFTP_MAX_MSG_LENGTH) fatal("Outbound message too long %u", buffer_len(m)); /* Send length first */ @@ -87,7 +84,7 @@ get_msg(int fd, Buffer *m) } msg_len = buffer_get_int(m); - if (msg_len > MAX_MSG_LENGTH) + if (msg_len > SFTP_MAX_MSG_LENGTH) fatal("Received message too long %u", msg_len); buffer_append_space(m, msg_len); diff --git a/sftp-common.h b/sftp-common.h index b42ba9140..2b1995a2d 100644 --- a/sftp-common.h +++ b/sftp-common.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-common.h,v 1.5 2003/11/10 16:23:41 jakob Exp $ */ +/* $OpenBSD: sftp-common.h,v 1.6 2006/01/02 01:20:31 djm Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. @@ -25,6 +25,9 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* Maximum packet that we are willing to send/accept */ +#define SFTP_MAX_MSG_LENGTH (256 * 1024) + typedef struct Attrib Attrib; /* File attributes */ diff --git a/sftp-server.c b/sftp-server.c index 4fa07e2f5..7060c44ad 100644 --- a/sftp-server.c +++ b/sftp-server.c @@ -14,7 +14,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include "includes.h" -RCSID("$OpenBSD: sftp-server.c,v 1.49 2005/09/13 23:40:07 djm Exp $"); +RCSID("$OpenBSD: sftp-server.c,v 1.50 2006/01/02 01:20:31 djm Exp $"); #include "buffer.h" #include "bufaux.h" @@ -946,7 +946,7 @@ process(void) return; /* Incomplete message. */ cp = buffer_ptr(&iqueue); msg_len = GET_32BIT(cp); - if (msg_len > 256 * 1024) { + if (msg_len > SFTP_MAX_MSG_LENGTH) { error("bad message "); exit(11); } -- cgit v1.2.3