Date: Sat, 18 May 1996 01:57:02 +1000 From: Bruce Evans <bde@zeta.org.au> To: elrond2imladris.frmug.fr.net@memo.frmug.fr.net, freebsd-bugs@freebsd.org Cc: roberto@keltia.freenix.fr Subject: Re: Bug found in getrlimit for 2.1R Message-ID: <199605171557.BAA28671@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
> I've found a bug in the getrlinit function(). Here is a small
>program to demonstrate this:
>...
> printf("soft=%d\nhard=%d\n",(long)Lim.rlim_cur,Lim.rlim_max);
>...
> This program outputs:
>-----
>soft=64
>hard=-1
>-----
> And under gdb:
>-----
>Breakpoint 1, main () at toto.c:12
>(gdb) print Lim
>$1 = {rlim_cur = 0x0000000000000040, rlim_max = 0x7fffffffffffffff}
>-----
The hard limit is 0x7fffffffffffffff like gdb says it is. This gets
truncated to -1 when it is converted to a long.
>...
> But was unable to find it on my installation nor the second CD
>of 2.1R!
getrlimit is a system call so it is generated from some #defines in
/usr/src/lib/libc/sys.
> I discovered this but while wriing a program working hard with
>sockets:
>-----
>getrlimit(RLINIT_NOFILE) returned garbage for rlim_max!!!
>Using arbitrary hard limit.
Several programs have problems with variables of type `long long'.
Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199605171557.BAA28671>
