I am enclosing a section of code that crashes the 2.2.15 kernel
repeatedly. My system is a 266 Intel P2 with 128Mb ram. The
crash is caused by the connect statement. It does not crash
if the socket is in BLOCKING mode. My distribution is Slack 7.0
if that matters.
---------------------------------------------------------------
soval=fcntl(s,F_GETFL,0);
ioval=fcntl(0,F_GETFL,0);
fcntl(s,F_SETFL,soval|O_NONBLOCK);
fcntl(0,F_SETFL,ioval|O_NONBLOCK);
cwait=WAITCONNECT;
*chin=0;
do{
/*If the following line is commented out the program does not crash*/
rval=connect(s, (struct sockaddr *)&dst, sizeof(dst));
read(0,chin,16);
sleep(1);
} while((rval) && --cwait && *chin!=0xa);
fcntl(s,F_SETFL,soval&~O_NONBLOCK);
fcntl(0,F_SETFL,ioval&~O_NONBLOCK);
---------------------------------------------------------------
On Tue, Apr 03, 2001 at 01:53:26AM -0700, Allen Ashley wrote:
> ---------------------------------------------------------------
> soval=fcntl(s,F_GETFL,0);
> ioval=fcntl(0,F_GETFL,0);
> fcntl(s,F_SETFL,soval|O_NONBLOCK);
> fcntl(0,F_SETFL,ioval|O_NONBLOCK);
> cwait=WAITCONNECT;
> *chin=0;
> do{
> /*If the following line is commented out the program does not crash*/
> rval=connect(s, (struct sockaddr *)&dst, sizeof(dst));
You haven't mentioned dst before this line, or s. Make a small,
complete, minimal test program that shows the bug.
Tim.
*/
Hi
this was a bug in 2.2.15 you could do
while(1) { connect() }
and it would crash the kernel it was fixed by 2.2.16
In local.linux-kernel-list, you wrote:
>I am enclosing a section of code that crashes the 2.2.15 kernel
>repeatedly. My system is a 266 Intel P2 with 128Mb ram. The
>crash is caused by the connect statement. It does not crash
>if the socket is in BLOCKING mode. My distribution is Slack 7.0
>if that matters.
>
--
---------------------------------------------
Check Out: http://stev.org
E-Mail: [email protected]
11:40am up 7 days, 19:35, 5 users, load average: 2.33, 2.54, 2.58