=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/sftp-glob.c,v retrieving revision 1.10 retrieving revision 1.10.2.1 diff -u -r1.10 -r1.10.2.1 --- src/usr.bin/ssh/sftp-glob.c 2002/02/13 00:59:23 1.10 +++ src/usr.bin/ssh/sftp-glob.c 2002/10/11 14:51:52 1.10.2.1 @@ -23,7 +23,7 @@ */ #include "includes.h" -RCSID("$OpenBSD: sftp-glob.c,v 1.10 2002/02/13 00:59:23 djm Exp $"); +RCSID("$OpenBSD: sftp-glob.c,v 1.10.2.1 2002/10/11 14:51:52 miod Exp $"); #include @@ -53,12 +53,14 @@ r = xmalloc(sizeof(*r)); - if (do_readdir(cur.conn, (char*)path, &r->dir)) + if (do_readdir(cur.conn, (char *)path, &r->dir)) { + xfree(r); return(NULL); + } r->offset = 0; - return((void*)r); + return((void *)r); } static struct dirent * @@ -83,31 +85,12 @@ 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 fudge_lstat(const char *path, struct stat *st) { Attrib *a; - if (!(a = do_lstat(cur.conn, (char*)path, 0))) + if (!(a = do_lstat(cur.conn, (char *)path, 0))) return(-1); attrib_to_stat(a, st); @@ -120,7 +103,7 @@ { Attrib *a; - if (!(a = do_stat(cur.conn, (char*)path, 0))) + if (!(a = do_stat(cur.conn, (char *)path, 0))) return(-1); attrib_to_stat(a, st);