summaryrefslogtreecommitdiff
path: root/sftp-server.c
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2001-06-25 04:24:49 +0000
committerBen Lindstrom <mouring@eviladmin.org>2001-06-25 04:24:49 +0000
commit488d8805f383e65f3e23c8adce2e1fbf7d2aabb9 (patch)
treec58a5e6de195171e090ad47de653458cca7f8c5e /sftp-server.c
parentaf7388046d8238c5d50a78c5ecdc9d782dad01de (diff)
downloadopenssh-git-488d8805f383e65f3e23c8adce2e1fbf7d2aabb9.tar.gz
- markus@cvs.openbsd.org 2001/06/22 22:21:20
[sftp-server.c] allow long usernames/groups in readdir
Diffstat (limited to 'sftp-server.c')
-rw-r--r--sftp-server.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sftp-server.c b/sftp-server.c
index 1cbd1847..ab6291e6 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);
}