--- crashme-2.4.orig/crashme.1 +++ crashme-2.4/crashme.1 @@ -1,4 +1,4 @@ -.TH CRASHME 1C LOCAL +.TH CRASHME 1 LOCAL .SH NAME crashme \- test operating environment software robustness .SH SYNOPSIS --- crashme-2.4.orig/debian/copyright +++ crashme-2.4/debian/copyright @@ -0,0 +1,25 @@ +This package was created by Jay Kominek <jkominek@debian.org> on Sunday +the 7th of June, 1998. + +The copyright for crashme is as follows, taken verbatim from crashme.c: + + * + * 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. --- crashme-2.4.orig/debian/README.debian +++ crashme-2.4/debian/README.debian @@ -0,0 +1,23 @@ + _ + ___ _ __ __ _ ___| |__ _ __ ___ ___ + / __| '__/ _` / __| '_ \| '_ ` _ \ / _ \ +| (__| | | (_| \__ \ | | | | | | | | __/ + \___|_| \__,_|___/_| |_|_| |_| |_|\___| + ... 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 --- crashme-2.4.orig/debian/compat +++ crashme-2.4/debian/compat @@ -0,0 +1 @@ +4 --- crashme-2.4.orig/debian/rules +++ crashme-2.4/debian/rules @@ -0,0 +1,46 @@ +#!/usr/bin/make -f +# Originally generated by debmake, and then converted to use debhelper + +# 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 + +build: crashme + +clean: + dh_testdir + dh_testroot + + rm -f crashme + + dh_clean + +binary-indep: +# Nothing to do + +binary-arch: build + dh_testdir + dh_testroot + dh_clean + dh_installdirs + dh_install crashme usr/bin + dh_installdocs crashme.html + dh_installman crashme.1 + dh_installchangelogs + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary --- crashme-2.4.orig/debian/control +++ crashme-2.4/debian/control @@ -0,0 +1,17 @@ +Source: crashme +Section: devel +Priority: optional +Maintainer: Aurélien GÉRÔME <ag@roxor.cx> +Standards-Version: 3.7.2 +Build-Depends: debhelper (>= 4) + +Package: crashme +Architecture: any +Depends: ${shlibs: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 --- crashme-2.4.orig/debian/changelog +++ crashme-2.4/debian/changelog @@ -0,0 +1,75 @@ +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 <ag@roxor.cx> 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 <vela@debian.org> 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 <amaya@debian.org> 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 <amaya@debian.org> 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 <aaronl@vitelus.com> 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 <jay.kominek@colorado.edu> 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 <jkominek@debian.org> 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 <jkominek@debian.org> Thu, 18 Jun 1998 02:57:30 -0400 + +crashme (2.4-1) unstable; urgency=low + + * Initial Release. + + -- Jay Kominek <jkominek@debian.org> Sat, 6 Jun 1998 19:12:44 -0400 --- crashme-2.4.orig/crashme.c +++ crashme-2.4/crashme.c @@ -151,6 +151,8 @@ #include <unistd.h> #endif +#include <sys/wait.h> + 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 [+]<nbytes>[.inc] <srand> <ntrys> [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;i<ntrys;++i) {compute_badboy(); if (offset) - sprintf(notes,"try %d, offset %d",i,offset); + sprintf(notes,"try %d, offset %ld",i,offset); else if (malloc_flag == 1) - sprintf(notes,"try %d, Badboy at %d. 0x%X",i,badboy,badboy); + sprintf(notes,"try %d, Badboy at %d. 0x%X",i,(int) badboy,(unsigned int) badboy); else sprintf(notes,"try %d",i); note(5); @@ -514,7 +515,7 @@ struct status_list *slist = NULL; -record_status(n) +int record_status(n) long n; {struct status_list *l; for(l=slist;l != NULL; l = l->next) @@ -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<n;++j) - {sprintf(arg2,"%d",sr+j); - sprintf(arg4,"%d",j+1); + {sprintf(arg2,"%ld",sr+j); + sprintf(arg4,"%ld",j+1); #ifdef VMS status = vfork(); #else status = fork(); #endif if (status == 0) - {status = execl(cmd,cmd,nb,arg2,nt,arg4,arg5,subprocess_ind,0); + {status = execlp(cmd,cmd,nb,arg2,nt,arg4,arg5,subprocess_ind,NULL); if (status == -1) {perror(cmd); exit(1);}} else if (status < 0) perror(cmd); else - {sprintf(notes,"pid = %d 0x%X (subprocess %d)",status,status,j+1); + {sprintf(notes,"pid = %d 0x%X (subprocess %ld)",status,status,j+1); note(3); if (seq == 1) {monitor_pid = status; @@ -606,19 +607,19 @@ monitor_active = 1; while((pid = wait(&status)) > 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();