Subject: Re: SE GC83 GPRS card: pppd problem
To: Christos Zoulas <firstname.lastname@example.org>
From: Steven M. Bellovin <email@example.com>
Date: 01/30/2006 22:24:44
In message <firstname.lastname@example.org>, Christos Zoulas writes:
>In article <20060130170020.GA1309@nbholecek.uamt.feec.vutbr.cz>,
>Jachym Holecek <email@example.com> wrote:
>>> On Jan 30, 5:16pm, firstname.lastname@example.org (Jachym Holecek) wrote:
>>> -- Subject: Re: SE GC83 GPRS card: pppd problem
>>> | I did the same last night (but offline) -- the problem was in main.c
>>> | (in case you really mean sys-bsd.c, I can take a look later in the
>>> | evening)
>>> I really meant sys-bsd.c ...
>>dist/pppd/pppd/main.c contains unhandled corner case, the patch
>>below fixed the problem I've reproduced with Alex's setup. The
>>second occupy_stdfds() call is key.
>I think that the reason you need the second occupy_stdfds() is because
>of the bug I introduced that closed 0 inadvertently in sys-bsd.c. Maybe
>doing both is ok, but I am not very happy with sandbagging the code without
>a good reason.
Trying pppd with just your fix, I get this for open files:
crw-r--r-- 1 uucp wheel 66, 0 Jan 27 20:32 0
-rw-r--r-- 1 root wheel 0 Jan 30 22:21 1
-rwxr-xr-x 1 root wheel 141 Jan 19 13:52 10
crw-r--r-- 1 uucp wheel 66, 0 Jan 27 20:32 11
-rw-r--r-- 1 root wheel 0 Jan 30 22:21 2
and of course it doesn't work since chat writes to fd1. I haven't yet
tried Jachym's fix.
--Steven M. Bellovin, http://www.cs.columbia.edu/~smb