Subject: broken in 4.02

From: Jauder Ho <[email-masked]>
Date: Wed, 22 Jul 1998 02:02:45 -0700 (PDT)

still can use pine to go up directories... pilot exhibits the same problem
under both solaris and linux. 

for solaris, truss pilot
read(0, "\r", 1)                                = 1
write(1, "1B [ K", 3)                           = 3
write(1, "1B [ 7 4 ; 2 8 H1B [ 7 m".., 49)      = 49
stat("/home", 0xEFFFEF88)                       = 0
open64("/home", O_RDONLY|O_NDELAY)              = 3
fcntl(3, F_SETFD, 0x00000001)                   = 0
fstat64(3, 0xEFFFEE88)                          = 0
getdents64(3, 0x00077FF8, 1048)                 = 192
getdents64(3, 0x00077FF8, 1048)                 = 968
getdents64(3, 0x00077FF8, 1048)                 = 988
getdents64(3, 0x00077FF8, 1048)                 = 976
getdents64(3, 0x00077FF8, 1048)                 = 960
    Incurred fault #6, FLTBOUNDS  %pc = 0xEF74BADC
      siginfo: SIGSEGV SEGV_MAPERR addr=0x6E75E6F8
    Received signal #11, SIGSEGV [default]
      siginfo: SIGSEGV SEGV_MAPERR addr=0x6E75E6F8
        *** process killed ***

for linux, strace pilot

read(0, "\r", 1)                        = 1
write(1, "\33[K", 3)                    = 3
write(1, "\33[22;28H\33[7m[ Building file "..., 49) = 49
stat("/home", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat("/home", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
open("/home", O_RDONLY)                 = 6
fcntl(6, F_SETFD, FD_CLOEXEC)           = 0
getdents(6, /* 6 entries */, 1024)      = 100
getdents(1835627520, 0x807e258, 1024)   = -1 EBADF (Bad file number)
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++

if I go down a couple of dirs and then try to go up I get a little further

for solaris
lstat("/home/zongjian", 0xEFFFEF98)             = 0
write(1, "1B [ 1 ; 1 H1B [ K1B [ 2".., 1024)    = 1024
write(1, " i r )     a l g        ".., 1024)    = 1024
write(1, " r )     c a d m i u m  ".., 1024)    = 1024
write(1, " ( d i r )     d g a u d".., 1024)    = 1024
write(1, "       ( d i r )     h a".., 1024)    = 1024
write(1, " h a n i u m            ".., 1024)    = 1024
    Incurred fault #6, FLTBOUNDS  %pc = 0xEF746030
      siginfo: SIGSEGV SEGV_MAPERR addr=0x75728050
    Received signal #11, SIGSEGV [default]
      siginfo: SIGSEGV SEGV_MAPERR addr=0x75728050
        *** process killed ***

for linux
read(0, "\r", 1)                        = 1
write(1, "\33[K", 3)                    = 3
write(1, "\33[22;28H\33[7m[ Building file "..., 49) = 49
stat("/home", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
stat("/home", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
open("/home", O_RDONLY)                 = 6
fcntl(6, F_SETFD, FD_CLOEXEC)           = 0
getdents(6, /* 6 entries */, 1024)      = 100
getdents(1835627520, 0x807a420, 1024)   = -1 EBADF (Bad file number)
--- SIGSEGV (Segmentation fault) ---
+++ killed by SIGSEGV +++

Strange... I can only go down but not up :)

--Jauder

-----------------------------------------------------------------
 For information about this mailing list, and its archives, see: 
 http://www.washington.edu/pine/pine-info/
-----------------------------------------------------------------

---

From: Steve Hubert <[email-masked]>
Date: Thu, 23 Jul 1998 11:35:29 -0700 (PDT)

We haven't been able to reproduce this problem or understand what is
happening. I am guessing that it is happening on Linux and Solaris systems
newer than the ones we have available. We have Linux 2.0.33 and Solaris
5.4. From Jauder's traces it looks like the problem is happening in the
opendir call in getfnames in pico/pico_os.c. If someone has a system
capable of reproducing the problem and you can step through it to see
what's happening, please let us know what the problem is! Thanks.

-- 
Steve Hubert <[email-masked]>
Networks and Distributed Computing, Univ. of Washington, Seattle

---

From: Jauder Ho <[email-masked]>
Date: Fri, 24 Jul 1998 01:28:04 -0700 (PDT)

I'll see what I can do tomorrow. One of the Suns blew up today and
I spent all day coaxing it to come back to the land of the living.

--Jauder