From owner-freebsd-questions Thu Nov 16 15:48:27 2000 Delivered-To: freebsd-questions@freebsd.org Received: from fw.wintelcom.net (ns1.wintelcom.net [209.1.153.20]) by hub.freebsd.org (Postfix) with ESMTP id 5DAD137B479 for ; Thu, 16 Nov 2000 15:48:25 -0800 (PST) Received: (from bright@localhost) by fw.wintelcom.net (8.10.0/8.10.0) id eAGNmNh19506; Thu, 16 Nov 2000 15:48:23 -0800 (PST) Date: Thu, 16 Nov 2000 15:48:23 -0800 From: Alfred Perlstein To: Sebastiaan van Erk Cc: freebsd-questions@freebsd.org Subject: Re: argument list too long Message-ID: <20001116154822.B18037@fw.wintelcom.net> References: <00111621362707.00522@shalimar.net.au> <20001116122313.A69018@sebster.com> <00111700205500.61931@shalimar.net.au> <20001116145641.A22842@sebster.com> <20001116105654.G830@fw.wintelcom.net> <20001116231731.A14470@c187104187.telekabel.chello.nl> <20001116143843.S830@fw.wintelcom.net> <20001117000816.B15150@c187104187.telekabel.chello.nl> <20001116152421.A18037@fw.wintelcom.net> <20001117004239.A3656@sebster.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <20001117004239.A3656@sebster.com>; from sebster@sebster.com on Fri, Nov 17, 2000 at 12:42:39AM +0100 Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG * Sebastiaan van Erk [001116 15:42] wrote: > Alfred Perlstein wrote: > > > And what about Bob down the hall that's screwed because your program > > just allocated all the kernel memory to pass your super long arglist? > > > > What about the next program you want to run? > > What about them? Are you saying nobody can think up a way of passing > long argument lists without crashing the machine? > > What about: > int main() { while(1) malloc(1024); } > > THEN what about Bob? Why don't you limit argument lists in the same > way that you limit users? The user allocates the list and passes > a pointer to it to execve? I don't see any reason for the kernel > ever needing to copy the list. We limit the amount of memory a user can allocate. See the manpage for limit. > > I'm not assuming very little memory, I'm assuming that it wouldn't > > be good if one was able to cause a machine to fail all further > > execs by just passing a multimegabyte arglist. > > True. That wouldn't be good. But it just wouldn't have to happen. I don't see how one could allocate all this memory and not have it happen. > > So why not use the tools already available before trying to foster > > these silly new ways apon us. > > Well I think it's not so silly to be able to do a tar `find / -name '*.jsp'`. I do, there's tools to address this issue. > Actually what would really be neat in my opinion would be if you could > specify (in a generic way) that you want to read your program to read the > arguments from a file. That way you don't have to rely on the program > to give you this option, and you don't have to be limitted by arg list > lengths either, because you can actually implement something as > > command `command1` fixed args `command 2` > > (schematically) as > > (command1; echo fixed args; command2) | command --args-from - > > This would be a much more efficient (lazy evaluation and such) implementation > of backquote substitution, and it would give you unlimitted argument lists > as well! So write a library to do so, it'll take you a lot more time than just using xargs. -- -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org] "I have the heart of a child; I keep it in a jar on my desk." To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message