Subject: Re: SE GC83 GPRS card: pppd problem
To: Christos Zoulas <christos@astron.com>
From: Steven M. Bellovin <smb@cs.columbia.edu>
List: current-users
Date: 01/30/2006 22:24:44
In message <drlp8c$ef$1@sea.gmane.org>, Christos Zoulas writes:
>In article <20060130170020.GA1309@nbholecek.uamt.feec.vutbr.cz>,
>Jachym Holecek  <freza@liberouter.org> wrote:
>>> On Jan 30,  5:16pm, freza@liberouter.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