[1334] in Athena Bugs
(VS2000) Version 6.0R: /usr/athena/emacsclient solution
daemon@ATHENA.MIT.EDU (jik@ATHENA.MIT.EDU)
Tue Nov 8 09:31:34 1988
From: <jik@ATHENA.MIT.EDU>
Date: Tue, 8 Nov 88 09:30:06 EST
To: bugs@ATHENA.MIT.EDU
System type, version: (VS2000) Version 6.0R
System name: w20-575-52
What's wrong:
This is an update to my last message -- I just figured out what's
wrong, thanks to an unstripped binary and dbx (and the fact that I
have access to the sources :-).
Running emacsclient under dbx results in:
(dbx) run foo
Illegal instruction (reserved addressing fault) in kill at 0x64c
0000064c bcs 640
(dbx) where
kill(0x3f31, 0x4) at 0x64c
abort() at 0x630
main(argc = 2, argv = 0x7fffe224, 0x7fffe230), line 103 in "emacsclient.c"
The listing for emacsclient.c reads, in that vicinity:
101 cwd = getwd (string);
102 if (cwd == 0)
103 abort ();
The getwd() is what was failing. It was failing because I was in a
directory the parent of which was not readable or writeable by me.
This is the same problem that pwd has:
w20-575-52% pwd
pwd: getwd: can't open ..
Two comments:
1) getwd should not return an error if it can't open the parent
directory! There's got to be a way to get around that! If I can do
"ls -ld /mit/foo" on an unreadable directory and see it, then surely
there is some way for getwd to get the name of that directory!
2) emacsclient should not simply abort if it can't open the parent
directory. It should signal an intelligent error. If it had said,
"can't open .." I would immediately have realized that I was in a
problem directory and moved back into my homedir. Of course, this
shouldn't be a problem at all because of (1) above, but we do what we
can, right...
--> Jonathan Kamens
Project Athena Watchmaker
SIPB (Student Information Processing Board) Member
Volunteer OLC Consultant
jik@ATHENA.MIT.EDU