441 lines
13 KiB
Diff
441 lines
13 KiB
Diff
--- 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();
|