From owner-freebsd-ports@FreeBSD.ORG Tue Sep 2 06:30:19 2008 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD31910656C1; Tue, 2 Sep 2008 06:30:19 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: from palm.hoeg.nl (mx0.hoeg.nl [IPv6:2001:610:652::211]) by mx1.freebsd.org (Postfix) with ESMTP id 6E2838FC1E; Tue, 2 Sep 2008 06:30:18 +0000 (UTC) (envelope-from ed@hoeg.nl) Received: by palm.hoeg.nl (Postfix, from userid 1000) id BECCB1CC40; Tue, 2 Sep 2008 08:30:16 +0200 (CEST) Date: Tue, 2 Sep 2008 08:30:16 +0200 From: Ed Schouten To: Yuriy Tsibizov Message-ID: <20080902063016.GK99951@hoeg.nl> References: <200809011335.m81DZW8b006033@pozo.com> <200809011436.m81Eaq2v040141@pozo.com> <20080902095229.Y1605@atwork.home.local> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="CthBKbHMLuDDTcy3" Content-Disposition: inline In-Reply-To: <20080902095229.Y1605@atwork.home.local> User-Agent: Mutt/1.5.18 (2008-05-17) Cc: ports@freebsd.org, FreeBSD Current , Claus Guttesen Subject: Re: /usr/bin/limits (WAS: Re: Apache.sh on current) X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Sep 2008 06:30:19 -0000 --CthBKbHMLuDDTcy3 Content-Type: multipart/mixed; boundary="MKa19fad5K0Qqc8o" Content-Disposition: inline --MKa19fad5K0Qqc8o Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * Yuriy Tsibizov wrote: > (gdb) bt > #0 0x00000000 in ?? () > #1 0x0804937d in main (argc=3D3, argv=3D0xbfbfed44) > at /usr/src/usr.bin/limits/limits.c:341 > (gdb) l > 341 val =3D resources[rcswhich].func(lc, resources[rcswhich].cap, li= mits[rcswhich].rlim_cur, limits[rcswhich].rlim_cur); > 342 limits[rcswhich].rlim_cur =3D resources[rcswhich].func(lc, str, = val, val); > 343 /* maximum value overridden by resourcename or resourcename-max = */ > 344 sprintf(str, "%s-max", resources[rcswhich].cap); > 345 val =3D resources[rcswhich].func(lc, resources[rcswhich].cap, li= mits[rcswhich].rlim_max, limits[rcswhich].rlim_max); > 346 limits[rcswhich].rlim_max =3D resources[rcswhich].func(lc, str, = val, val); > 347 } > 348 } > 349 } > 350 > (gdb) p resources > $1 =3D {{cap =3D 0x804adc2 "cputime", func =3D 0x8048c84 }, { > cap =3D 0x804adca "filesize", func =3D 0x8048c34 }= , { > cap =3D 0x804add3 "datasize", func =3D 0x8048c34 }= , { > cap =3D 0x804addc "stacksize", func =3D 0x8048c34 = }, { > cap =3D 0x804ade6 "coredumpsize", func =3D 0x8048c34 },{ > cap =3D 0x804adf3 "memoryuse", func =3D 0x8048c34 = }, { > cap =3D 0x804adfd "memorylocked", func =3D 0x8048c34 },{ > cap =3D 0x804ae0a "maxproc", func =3D 0x8048c94 }, { > cap =3D 0x804ae12 "openfiles", func =3D 0x8048c94 }= , { > cap =3D 0x804ae1c "sbsize", func =3D 0x8048c34 }, { > cap =3D 0x804ae23 "vmemoryuse", func =3D 0x8048c34 }, { > cap =3D 0x0, func =3D 0}} Looks like I introduced this regression when importing MPSAFE TTY. limits(1) dies when RLIMIT_NLIMITS is increased, but the array in limits.c isn't extended (seems to be quite fragile). Can you try the attached patch for limits(1)? Thanks! --=20 Ed Schouten WWW: http://80386.nl/ --MKa19fad5K0Qqc8o Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="limits.diff" Content-Transfer-Encoding: quoted-printable --- limits.c +++ limits.c @@ -76,17 +76,18 @@ { { "", "infinity", "Resource limits%s%s:\n", "-max", "-cur", "", { - { " cputime%-4s %8s", " secs\n", 1 }, - { " filesize%-4s %8s", " kB\n", 1024 }, - { " datasize%-4s %8s", " kB\n", 1024 }, - { " stacksize%-4s %8s", " kB\n", 1024 }, - { " coredumpsize%-4s %8s", " kB\n", 1024 }, - { " memoryuse%-4s %8s", " kB\n", 1024 }, - { " memorylocked%-4s %8s", " kB\n", 1024 }, - { " maxprocesses%-4s %8s", "\n", 1 }, - { " openfiles%-4s %8s", "\n", 1 }, - { " sbsize%-4s %8s", " bytes\n", 1 }, - { " vmemoryuse%-4s %8s", " kB\n", 1024 } + { " cputime%-4s %8s", " secs\n", 1 }, + { " filesize%-4s %8s", " kB\n", 1024 }, + { " datasize%-4s %8s", " kB\n", 1024 }, + { " stacksize%-4s %8s", " kB\n", 1024 }, + { " coredumpsize%-4s %8s", " kB\n", 1024 }, + { " memoryuse%-4s %8s", " kB\n", 1024 }, + { " memorylocked%-4s %8s", " kB\n", 1024 }, + { " maxprocesses%-4s %8s", "\n", 1 }, + { " openfiles%-4s %8s", "\n", 1 }, + { " sbsize%-4s %8s", " bytes\n", 1 }, + { " vmemoryuse%-4s %8s", " kB\n", 1024 }, + { " pseudo-terminals%-4s %8s", "\n", 1 } } }, { "sh", "unlimited", "", " -H", " -S", "", @@ -101,22 +102,24 @@ { "ulimit%s -u %s", ";\n", 1 }, { "ulimit%s -n %s", ";\n", 1 }, { "ulimit%s -b %s", ";\n", 1 }, - { "ulimit%s -v %s", ";\n", 1024 } + { "ulimit%s -v %s", ";\n", 1024 }, + { "ulimit%s -p %s", ";\n", 1 } } }, { "csh", "unlimited", "", " -h", "", NULL, { - { "limit%s cputime %s", ";\n", 1 }, - { "limit%s filesize %s", ";\n", 1024 }, - { "limit%s datasize %s", ";\n", 1024 }, - { "limit%s stacksize %s", ";\n", 1024 }, - { "limit%s coredumpsize %s", ";\n", 1024 }, - { "limit%s memoryuse %s", ";\n", 1024 }, - { "limit%s memorylocked %s", ";\n", 1024 }, - { "limit%s maxproc %s", ";\n", 1 }, - { "limit%s openfiles %s", ";\n", 1 }, - { "limit%s sbsize %s", ";\n", 1 }, - { "limit%s vmemoryuse %s", ";\n", 1024 } + { "limit%s cputime %s", ";\n", 1 }, + { "limit%s filesize %s", ";\n", 1024 }, + { "limit%s datasize %s", ";\n", 1024 }, + { "limit%s stacksize %s", ";\n", 1024 }, + { "limit%s coredumpsize %s", ";\n", 1024 }, + { "limit%s memoryuse %s", ";\n", 1024 }, + { "limit%s memorylocked %s", ";\n", 1024 }, + { "limit%s maxproc %s", ";\n", 1 }, + { "limit%s openfiles %s", ";\n", 1 }, + { "limit%s sbsize %s", ";\n", 1 }, + { "limit%s vmemoryuse %s", ";\n", 1024 }, + { "limit%s pseudoterminals %s", ";\n", 1 } } }, { "bash|bash2", "unlimited", "", " -H", " -S", "", @@ -131,22 +134,24 @@ { "ulimit%s -u %s", ";\n", 1 }, { "ulimit%s -n %s", ";\n", 1 }, { "ulimit%s -b %s", ";\n", 1 }, - { "ulimit%s -v %s", ";\n", 1024 } + { "ulimit%s -v %s", ";\n", 1024 }, + { "ulimit%s -p %s", ";\n", 1 } } }, { "tcsh", "unlimited", "", " -h", "", NULL, { - { "limit%s cputime %s", ";\n", 1 }, - { "limit%s filesize %s", ";\n", 1024 }, - { "limit%s datasize %s", ";\n", 1024 }, - { "limit%s stacksize %s", ";\n", 1024 }, - { "limit%s coredumpsize %s", ";\n", 1024 }, - { "limit%s memoryuse %s", ";\n", 1024 }, - { "limit%s memorylocked %s", ";\n", 1024 }, - { "limit%s maxproc %s", ";\n", 1 }, - { "limit%s descriptors %s", ";\n", 1 }, - { "limit%s sbsize %s", ";\n", 1 }, - { "limit%s vmemoryuse %s", ";\n", 1024 } + { "limit%s cputime %s", ";\n", 1 }, + { "limit%s filesize %s", ";\n", 1024 }, + { "limit%s datasize %s", ";\n", 1024 }, + { "limit%s stacksize %s", ";\n", 1024 }, + { "limit%s coredumpsize %s", ";\n", 1024 }, + { "limit%s memoryuse %s", ";\n", 1024 }, + { "limit%s memorylocked %s", ";\n", 1024 }, + { "limit%s maxproc %s", ";\n", 1 }, + { "limit%s descriptors %s", ";\n", 1 }, + { "limit%s sbsize %s", ";\n", 1 }, + { "limit%s vmemoryuse %s", ";\n", 1024 }, + { "limit%s pseudoterminals %s", ";\n", 1 } } }, { "ksh|pdksh", "unlimited", "", " -H", " -S", "", @@ -161,7 +166,8 @@ { "ulimit%s -p %s", ";\n", 1 }, { "ulimit%s -n %s", ";\n", 1 }, { "ulimit%s -b %s", ";\n", 1 }, - { "ulimit%s -v %s", ";\n", 1024 } + { "ulimit%s -v %s", ";\n", 1024 }, + { "ulimit%s -p %s", ";\n", 1 } } }, { "zsh", "unlimited", "", " -H", " -S", "", @@ -176,22 +182,24 @@ { "ulimit%s -u %s", ";\n", 1 }, { "ulimit%s -n %s", ";\n", 1 }, { "ulimit%s -b %s", ";\n", 1 }, - { "ulimit%s -v %s", ";\n", 1024 } + { "ulimit%s -v %s", ";\n", 1024 }, + { "ulimit%s -p %s", ";\n", 1 } } }, { "rc|es", "unlimited", "", " -h", "", NULL, { - { "limit%s cputime %s", ";\n", 1 }, - { "limit%s filesize %s", ";\n", 1024 }, - { "limit%s datasize %s", ";\n", 1024 }, - { "limit%s stacksize %s", ";\n", 1024 }, - { "limit%s coredumpsize %s", ";\n", 1024 }, - { "limit%s memoryuse %s", ";\n", 1024 }, - { "limit%s lockedmemory %s", ";\n", 1024 }, - { "limit%s processes %s", ";\n", 1 }, - { "limit%s descriptors %s", ";\n", 1 }, - { "limit%s sbsize %s", ";\n", 1 }, - { "limit%s vmemoryuse %s", ";\n", 1024 } + { "limit%s cputime %s", ";\n", 1 }, + { "limit%s filesize %s", ";\n", 1024 }, + { "limit%s datasize %s", ";\n", 1024 }, + { "limit%s stacksize %s", ";\n", 1024 }, + { "limit%s coredumpsize %s", ";\n", 1024 }, + { "limit%s memoryuse %s", ";\n", 1024 }, + { "limit%s lockedmemory %s", ";\n", 1024 }, + { "limit%s processes %s", ";\n", 1 }, + { "limit%s descriptors %s", ";\n", 1 }, + { "limit%s sbsize %s", ";\n", 1 }, + { "limit%s vmemoryuse %s", ";\n", 1024 }, + { "limit%s pseudoterminals %s", ";\n", 1 } } }, { NULL, NULL, NULL, NULL, NULL, NULL, @@ -213,7 +221,8 @@ { "maxproc", login_getcapnum }, { "openfiles", login_getcapnum }, { "sbsize", login_getcapsize }, - { "vmemoryuse", login_getcapsize } + { "vmemoryuse", login_getcapsize }, + { "pseudoterminals",login_getcapnum }, }; =20 /* --MKa19fad5K0Qqc8o-- --CthBKbHMLuDDTcy3 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (FreeBSD) iEYEARECAAYFAki83XgACgkQ52SDGA2eCwWPPwCfYoGazVxBOv24F1thn4PvllyC 1jAAnigG4Zi1W8C6BeyOkpPSboTtQo+b =eVms -----END PGP SIGNATURE----- --CthBKbHMLuDDTcy3--