From 488d8805f383e65f3e23c8adce2e1fbf7d2aabb9 Mon Sep 17 00:00:00 2001 From: Ben Lindstrom Date: Mon, 25 Jun 2001 04:24:49 +0000 Subject: - markus@cvs.openbsd.org 2001/06/22 22:21:20 [sftp-server.c] allow long usernames/groups in readdir --- ChangeLog | 13 ++++++++----- sftp-server.c | 11 +++++++---- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5c0b462d9..a6d3db544 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,9 @@ 20010525 - OpenBSD CVS Sync - - markus@cvs.openbsd.org 2001/06/21 21:08:25 - [session.c] - don't reset forced_command (we allow multiple login shells in - ssh2); dwd@bell-labs.com + - markus@cvs.openbsd.org 2001/06/21 21:08:25 + [session.c] + don't reset forced_command (we allow multiple login shells in + ssh2); dwd@bell-labs.com - mpech@cvs.openbsd.org 2001/06/22 10:17:51 [ssh.1 sshd.8 ssh-keyscan.1] o) .Sh AUTHOR -> .Sh AUTHORS; @@ -29,6 +29,9 @@ [dh.c] increase linebuffer to deal with larger moduli; use rewind instead of close/open + - markus@cvs.openbsd.org 2001/06/22 22:21:20 + [sftp-server.c] + allow long usernames/groups in readdir 20010622 - (stevesk) handle systems without pw_expire and pw_change. @@ -5713,4 +5716,4 @@ - Wrote replacements for strlcpy and mkdtemp - Released 1.0pre1 -$Id: ChangeLog,v 1.1303 2001/06/25 04:18:59 mouring Exp $ +$Id: ChangeLog,v 1.1304 2001/06/25 04:24:49 mouring Exp $ diff --git a/sftp-server.c b/sftp-server.c index 1cbd1847c..ab6291e61 100644 --- a/sftp-server.c +++ b/sftp-server.c @@ -22,7 +22,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "includes.h" -RCSID("$OpenBSD: sftp-server.c,v 1.26 2001/05/12 19:53:13 markus Exp $"); +RCSID("$OpenBSD: sftp-server.c,v 1.27 2001/06/22 22:21:20 markus Exp $"); #include "buffer.h" #include "bufaux.h" @@ -692,7 +692,7 @@ process_opendir(void) char * ls_file(char *name, struct stat *st) { - int sz = 0; + int ulen, glen, sz = 0; struct passwd *pw; struct group *gr; struct tm *ltime = localtime(&st->st_mtime); @@ -720,8 +720,11 @@ ls_file(char *name, struct stat *st) } if (sz == 0) tbuf[0] = '\0'; - snprintf(buf, sizeof buf, "%s %3d %-8.8s %-8.8s %8llu %s %s", mode, - st->st_nlink, user, group, (u_int64_t)st->st_size, tbuf, name); + ulen = MAX(strlen(user), 8); + glen = MAX(strlen(group), 8); + snprintf(buf, sizeof buf, "%s %3d %-*s %-*s %8llu %s %s", mode, + st->st_nlink, ulen, user, glen, group, + (u_int64_t)st->st_size, tbuf, name); return xstrdup(buf); } -- cgit v1.2.3