=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/sftp-glob.c,v retrieving revision 1.10.2.1 retrieving revision 1.11 diff -u -r1.10.2.1 -r1.11 --- src/usr.bin/ssh/sftp-glob.c 2002/10/11 14:51:52 1.10.2.1 +++ src/usr.bin/ssh/sftp-glob.c 2002/06/30 21:59:45 1.11 @@ -23,7 +23,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: sftp-glob.c,v 1.10.2.1 2002/10/11 14:51:52 miod Exp $"); +RCSID("$OpenBSD: sftp-glob.c,v 1.11 2002/06/30 21:59:45 deraadt Exp $"); #include @@ -53,10 +53,8 @@ r = xmalloc(sizeof(*r)); - if (do_readdir(cur.conn, (char *)path, &r->dir)) { - xfree(r); + if (do_readdir(cur.conn, (char *)path, &r->dir)) return(NULL); - } r->offset = 0; @@ -83,6 +81,25 @@ { free_sftp_dirents(od->dir); xfree(od); +} + +static void +attrib_to_stat(Attrib *a, struct stat *st) +{ + memset(st, 0, sizeof(*st)); + + if (a->flags & SSH2_FILEXFER_ATTR_SIZE) + st->st_size = a->size; + if (a->flags & SSH2_FILEXFER_ATTR_UIDGID) { + st->st_uid = a->uid; + st->st_gid = a->gid; + } + if (a->flags & SSH2_FILEXFER_ATTR_PERMISSIONS) + st->st_mode = a->perm; + if (a->flags & SSH2_FILEXFER_ATTR_ACMODTIME) { + st->st_atime = a->atime; + st->st_mtime = a->mtime; + } } static int