debian/0000755000000000000000000000000011776343067007204 5ustar debian/control0000644000000000000000000000142411776261514010604 0ustar Source: crashme Section: devel Priority: optional Maintainer: Nicholas Bamber Standards-Version: 3.9.3 Build-Depends: debhelper (>= 9) Homepage: http://people.delphiforums.com/gjc/crashme.html Vcs-Git: git://git.debian.org/git/collab-maint/crashme.git Vcs-Browser: http://git.debian.org/?p=collab-maint/crashme.git Package: crashme Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: Stress tests operating system stability crashme generates strings of random bytes and then attempts to execute them. Used to test kernel stability. . **WARNING** While Linux has been known to survive days and weeks of crashme, IT IS NOT GUARANTEED THAT YOUR SYSTEM WILL SURVIVE! DO NOT USE THIS PROGRAM UNLESS YOU REALLY WANT TO CRASH YOUR COMPUTER debian/changelog0000644000000000000000000000607311776343066011063 0ustar crashme (2.4-11) unstable; urgency=low * Found, extracted and installed the upstream changelog -- Nicholas Bamber Sun, 08 Jul 2012 18:40:50 +0100 crashme (2.4-10) unstable; urgency=low * New maintainer (Closes: #677765) * Added VCS fields to debian/control * Moved to source format '3.0 (quilt)' * Updated standards version to 3.9.3 * Updated debhelper version to 9 and compat level to 9 * Modernized debian/rules and debian/copyright * Annotated legacy.patch and added spelling.patch * Added lintian overrides for lack of upstream changelog and lack of hardening during the build * Added doc-base support -- Nicholas Bamber Sun, 08 Jul 2012 14:44:56 +0100 crashme (2.4-9) unstable; urgency=low * Adopt the package (Closes: #353388). * Conform to policy with CFLAGS set to "-O2 -g -Wall". * Fix resulting gcc warnings from turning on "-Wall". -- Aurélien GÉRÔME Mon, 31 Jul 2006 14:41:43 +0200 crashme (2.4-8) unstable; urgency=low * QA upload. * debian/postinst: Remove; /usr/doc already handled by the old prerm. * debian/rules: - Add support for DEB_BUILD_OPTIONS=noopt. - Use dh_install. -- Matej Vela Sun, 30 Jul 2006 22:14:56 +0200 crashme (2.4-7) unstable; urgency=low * QA upload. * s/PAQUETE/crashme/g in postinst. Sorry -- Amaya Rodrigo Sastre Wed, 12 Jul 2006 21:44:04 +0200 crashme (2.4-6) unstable; urgency=low * QA upload. * This package is orphaned as of #353388, so setting the Maintainer field accordingly to QA. * Fix typo in package description (Closes: #363215). * Get rid of the /usr/doc link (Closes: #359371). * Stop echoing warnings and stuff on console in postinst. Debconf should be used instead. Somebody please fix this. * Bumped Standards version to 3.7.2. No changes needed. * Fixed manual section -- Amaya Rodrigo Sastre Wed, 12 Jul 2006 18:47:31 +0200 crashme (2.4-5) unstable; urgency=low * New maintainer (Closes: #81889) * Bump up Standards-Version * Add Build-Depends (Closes: #70344) * Remove pddet from the package since it has no manpage and does not seem to be useful, even for the build process. -- Aaron Lehmann Wed, 10 Jan 2001 19:29:36 -0800 crashme (2.4-4) unstable; urgency=low * Replaced execl call with execlp. (Fixes bug #37304) * Removed access to an obsolete structure member. (Fixes bug #37446) -- Jay Kominek Tue, 25 May 1999 09:32:17 -0600 crashme (2.4-3) unstable; urgency=low * Switched binary-arch and binary-indep to what they should be. (Fixes bug #25452) -- Jay Kominek Thu, 6 Aug 1998 03:34:49 -0600 crashme (2.4-2) unstable; urgency=low * Changed extended package description to format sanely in dselect. (Fixes bug #23666) -- Jay Kominek Thu, 18 Jun 1998 02:57:30 -0400 crashme (2.4-1) unstable; urgency=low * Initial Release. -- Jay Kominek Sat, 6 Jun 1998 19:12:44 -0400 debian/crashme.manpages0000644000000000000000000000001211776151065012327 0ustar crashme.1 debian/compat0000644000000000000000000000000211776150205010370 0ustar 9 debian/patches/0000755000000000000000000000000011776266156010636 5ustar debian/patches/spelling.patch0000644000000000000000000000207211776266156013475 0ustar Author: Nicholas Bamber Last-Update: 2012-08-07 Forwarded: no Subject: spelling --- a/crashme.1 +++ b/crashme.1 @@ -22,7 +22,7 @@ in bytes. If given negative then the bytes are printed instead of being executed. If given with an explicit plus sign then the storage for the bytes is freshly malloc'ed each time. This can have an -effect on machines with seperate I and D cache mechanisms. The argument +effect on machines with separate I and D cache mechanisms. The argument can also have a dot in it, X.Y, in which case Y is a increment for a pointer into the random data. The buffer is recalculated only when the pointer gets near the end of the data. @@ -76,7 +76,7 @@ record the arguments it was given. .SH BUGS Not all signals are caught, and the state of the user program/process -enviroment can be sufficiently damaged such that the program terminates +environment can be sufficiently damaged such that the program terminates before going through all [NTRIES] operations. If the architecture uses some kind of procedure descriptor but no debian/patches/legacy.patch0000644000000000000000000001501511776147475013127 0ustar Subject: legacy patch No idea where they came from but they generally seem like crucial fixes Last-Update: 2012-07-08 Forwarded: no --- a/crashme.1 +++ b/crashme.1 @@ -1,4 +1,4 @@ -.TH CRASHME 1C LOCAL +.TH CRASHME 1 LOCAL .SH NAME crashme \- test operating environment software robustness .SH SYNOPSIS --- a/crashme.c +++ b/crashme.c @@ -151,6 +151,8 @@ #include #endif +#include + typedef void (*BADBOY)(); BADBOY badboy; @@ -260,10 +262,7 @@ #else struct sigaction act; act.sa_handler = func; - act.sa_mask = 0; -#ifdef linux - act.sa_restorer = 0; -#endif /* linux */ + bzero(&act.sa_mask,sizeof(sigset_t)); act.sa_flags = SA_NOMASK; #ifdef SA_RESTART act.sa_flags |= SA_RESTART; @@ -272,7 +271,7 @@ #endif /* SA_ONESHOT */ } -set_up_signals() +void set_up_signals() {my_signal(SIGILL,again_handler); #ifdef SIGTRAP my_signal(SIGTRAP,again_handler); @@ -295,7 +294,7 @@ #endif -compute_badboy_1(n) +void compute_badboy_1(n) long n; {long j; if (malloc_flag == 1) @@ -347,7 +346,7 @@ #endif return((BADBOY)dat);} -compute_badboy() +void compute_badboy() {long n; n = (nbytes < 0) ? - nbytes : nbytes; if (incptr == 0) @@ -369,7 +368,7 @@ the_data,(nbytes < 0) ? - nbytes : nbytes); */ -try_one_crash() +void try_one_crash() {if (nbytes > 0) (*badboy)(); else if (nbytes == 0) @@ -377,7 +376,7 @@ char *subprocess_ind = "subprocess"; -main(argc,argv) +int main(argc,argv) int argc; char **argv; {long nsubs,hrs,mns,scs,tflag,j,m; note_buffer = (char *) malloc(512); @@ -411,21 +410,23 @@ note(1); record_note(); if (strchr(argv[4],':')) - {sscanf(argv[4],"%d:%d:%d",&hrs,&mns,&scs); + {sscanf(argv[4],"%ld:%ld:%ld",&hrs,&mns,&scs); tflag = 1; nsubs = (((hrs * 60) + mns) * 60) + scs; - sprintf(notes,"Subprocess run for %d seconds (%d %02d:%02d:%02d)", + sprintf(notes,"Subprocess run for %ld seconds (%ld %02ld:%02ld:%02ld)", nsubs, hrs / 24, hrs % 24,mns,scs);} else {tflag = 0; nsubs = atol(argv[4]); - sprintf(notes,"Creating %d crashme subprocesses",nsubs);} + sprintf(notes,"Creating %ld crashme subprocesses",nsubs);} note(1); vfork_main(tflag,nsubs,argv[0],argv[1],atol(argv[2]),argv[3]);} else {sprintf(notes, "crashme [+][.inc] [nsub] [verbose]"); - note(0);}} + note(0);} + return 0; +} void copyright_note(n) long n; @@ -440,19 +441,19 @@ {char *ptr; copyright_note(3); nbytes = atol(argv[1]); - if (ptr = strchr(argv[1],'.')) + if ((ptr = strchr(argv[1],'.'))) incptr = atol(&ptr[1]); if (argv[1][0] == '+') malloc_flag = 1; nseed = atol(argv[2]); ntrys = atol(argv[3]); - sprintf(notes,"crashme %s%ld.%d %ld %ld", + sprintf(notes,"crashme %s%ld.%ld %ld %ld", (malloc_flag == 0) ? "" : "+",nbytes,incptr,nseed,ntrys); note(3); record_note(); if (malloc_flag == 0) {the_data = bad_malloc((nbytes < 0) ? -nbytes : nbytes); badboy = castaway(the_data); - sprintf(notes,"Badboy at %d. 0x%X",badboy,badboy); + sprintf(notes,"Badboy at %d. 0x%X",(int) badboy,(unsigned int) badboy); note(3);} srand(nseed); #ifdef WIN32 @@ -481,9 +482,9 @@ for(i=0;inext) @@ -527,13 +528,13 @@ slist = l; return(1);} -summarize_status() +void summarize_status() {struct status_list *l; sprintf(notes,"exit status ... number of cases"); note(2); for(l=slist;l != NULL; l = l->next) {sprintf(notes,"exit status ... number of cases"); - sprintf(notes,"%11d ... %5d",l->status,l->count); + sprintf(notes,"%11ld ... %5ld",l->status,l->count); note(2);}} #ifndef WIN32 @@ -552,7 +553,7 @@ if (monitor_active) {++monitor_count; if (monitor_count >= monitor_limit) - {sprintf(notes,"time limit reached on pid %d 0x%X. using kill.", + {sprintf(notes,"time limit reached on pid %ld 0x%lX. using kill.", monitor_pid,monitor_pid); note(3); status = kill(monitor_pid,SIGKILL); @@ -581,24 +582,24 @@ {my_signal(SIGALRM,monitor_fcn); alarm(monitor_period);} time(&before_time); - sprintf(arg5,"%d",verbose_level); + sprintf(arg5,"%ld",verbose_level); for(j=0;j 0) {monitor_active = 0; - sprintf(notes,"pid %d 0x%X exited with status %d",pid,pid,status); + sprintf(notes,"pid %ld 0x%lX exited with status %d",pid,pid,status); note(3); record_status(status);}} if (tflag == 1) {time(&after_time); total_time = after_time - before_time; if (total_time >= nsubs) - {sprintf(notes,"Time limit reached after run %d",j+1); + {sprintf(notes,"Time limit reached after run %ld",j+1); note(2); break;}}}} if (seq == 0) while((pid = wait(&status)) > 0) - {sprintf(notes,"pid %d 0x%X exited with status %d",pid,pid,status); + {sprintf(notes,"pid %ld 0x%lX exited with status %d",pid,pid,status); note(3); record_status(status);} time(&after_time); @@ -632,7 +633,7 @@ hrs = hrs % 24; open_record(); sprintf(notes, - "Test complete, total real time: %d seconds (%d %02d:%02d:%02d)", + "Test complete, total real time: %ld seconds (%ld %02ld:%02ld:%02ld)", total_time,dys,hrs,mns,scs); note(1); summarize_status(); debian/patches/series0000644000000000000000000000003411776265754012053 0ustar legacy.patch spelling.patch debian/rules0000755000000000000000000000071011776325726010264 0ustar #!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 CFLAGS = -Wall -g ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else CFLAGS += -O2 endif %: dh $@ override_dh_auto_build: gcc ${CFLAGS} crashme.c -o crashme override_dh_auto_test: override_dh_auto_clean: override_dh_installchangelogs: sed -e'1,/-----------/ d' -e'/^$$/,$$ d' crashme.c > debian/upstream dh_installchangelogs debian/upstream debian/copyright0000644000000000000000000000306611776306703011140 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: crashme Upstream-Contact: http://www.codeplex.com/site/users/contact/publius?OriginalUrl=http%3a%2f%2fwww.codeplex.com%2fsite%2fusers%2fview%2fpublius Source: http://crashme.codeplex.com/ Files: * Copyright: 1990-1994, George J. Carrette, Concord, Massachusetts License: crashme Files: debian/* Copyright: 1998, Jay Kominek 2012, Nicholas Bamber License: crashme License: crashme * * COPYRIGHT (c) 1990-1994 BY * * GEORGE J. CARRETTE, CONCORD, MASSACHUSETTS. * * ALL RIGHTS RESERVED * . Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation, and that the name of the author not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. . THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL HE BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. debian/crashme.lintian-overrides0000644000000000000000000000027411776324721014205 0ustar # Perhaps this is one of the few packages where hardening # will be counterproductive. crashme: hardening-no-fortify-functions usr/bin/crashme crashme: hardening-no-relro usr/bin/crashme debian/source/0000755000000000000000000000000011776146330010476 5ustar debian/source/format0000644000000000000000000000001411776146330011704 0ustar 3.0 (quilt) debian/crashme.docs0000644000000000000000000000001511776265265011477 0ustar crashme.html debian/README.debian0000644000000000000000000000160411776146330011300 0ustar _ ___ _ __ __ _ ___| |__ _ __ ___ ___ / __| '__/ _` / __| '_ \| '_ ` _ \ / _ \ | (__| | | (_| \__ \ | | | | | | | | __/ \___|_| \__,_|___/_| |_|_| |_| |_|\___| ... for Debian! So, you want to crash your computer, but pulling the processor out is getting boring? crashme is for you! crashme works by generating strings of random bytes, and then (here is the fun part) trying to execute the bytes! *** WARNING *** If you run crashme, your system could very well crash. YOU COULD LOSE YOUR ALL OF YOUR DATA!!! I (Jay Kominek), the author of crashme, Debian, SPI and its officers take no responsibility if you lose data by running crashme. Note: crashme is installed into /usr/bin, world executable. Joe Random User could very well execute it and crash your system! --- Jay Kominek jkominek@debian.org jfk@acm.org debian/crashme.doc-base0000644000000000000000000000034511776302202012211 0ustar Document: crashme Title: crashme Author: Nicholas Bamber Abstract: Stress tests operating system stability Section: Programming Format: HTML Index: /usr/share/doc/crashme/crashme.html Files: /usr/share/doc/crashme/crashme.html debian/clean0000644000000000000000000000003011776332744010202 0ustar crashme debian/upstream debian/watch0000644000000000000000000000016411776262031010225 0ustar version=3 http://people.delphiforums.com/gjc/crashme.html .*/crashme-v?(\d[\d.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip)$ debian/crashme.install0000644000000000000000000000002011776151021012171 0ustar crashme usr/bin