tbug fix - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 46199d113e9b607ecb42601246103ded683ca09e
 (DIR) parent 17ddbe119678c9b9a07d4767e43c928e85ca96e6
 (HTM) Author: rsc <devnull@localhost>
       Date:   Tue,  8 Feb 2005 20:24:52 +0000
       
       bug fix
       
       Diffstat:
         M src/lib9/dirread.c                  |       5 +++--
       
       1 file changed, 3 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/src/lib9/dirread.c b/src/lib9/dirread.c
       t@@ -80,13 +80,14 @@ dirpackage(int fd, char *buf, int n, Dir **dp)
        
                for(i=0; i<n; i++){
                        de = (struct dirent*)p;
       +                memset(&lst, 0, sizeof lst);
                        if(de->d_name[0] == 0)
                                /* nothing */ {}
                        else if(lstat(de->d_name, &lst) < 0)
                                de->d_name[0] = 0;
                        else{
                                st = lst;
       -                        if((lst.st_mode&S_IFMT) == S_IFLNK)
       +                        if(S_ISLNK(lst.st_mode))
                                        stat(de->d_name, &st);
                                nstr += _p9dir(&lst, &st, de->d_name, nil, nil, nil);
                        }
       t@@ -106,7 +107,7 @@ dirpackage(int fd, char *buf, int n, Dir **dp)
                m = 0;
                for(i=0; i<n; i++){
                        de = (struct dirent*)p;
       -                if(de->d_name[0] != 0 && lstat(de->d_name, &st) >= 0){
       +                if(de->d_name[0] != 0 && lstat(de->d_name, &lst) >= 0){
                                st = lst;
                                if((lst.st_mode&S_IFMT) == S_IFLNK)
                                        stat(de->d_name, &st);