home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: safe
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| C source, ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| message/rfc822
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 53 75 62 6a 65 63 74 3a | 20 20 76 30 37 69 30 33 |Subject:| v07i03|
|00000010| 32 3a 20 20 4c 69 6d 69 | 74 20 61 20 70 72 6f 67 |2: Limi|t a prog|
|00000020| 72 61 6d 27 73 20 65 78 | 65 63 75 74 69 6f 6e 20 |ram's ex|ecution |
|00000030| 74 69 6d 65 0a 4e 65 77 | 73 67 72 6f 75 70 73 3a |time.New|sgroups:|
|00000040| 20 6d 6f 64 2e 73 6f 75 | 72 63 65 73 0a 41 70 70 | mod.sou|rces.App|
|00000050| 72 6f 76 65 64 3a 20 6d | 69 72 72 6f 72 21 72 73 |roved: m|irror!rs|
|00000060| 0a 0a 53 75 62 6d 69 74 | 74 65 64 20 62 79 3a 20 |..Submit|ted by: |
|00000070| 69 68 6e 70 34 21 61 69 | 63 63 68 69 21 6d 64 62 |ihnp4!ai|cchi!mdb|
|00000080| 0a 4d 6f 64 2e 73 6f 75 | 72 63 65 73 3a 20 56 6f |.Mod.sou|rces: Vo|
|00000090| 6c 75 6d 65 20 37 2c 20 | 49 73 73 75 65 20 33 32 |lume 7, |Issue 32|
|000000a0| 0a 41 72 63 68 69 76 65 | 2d 6e 61 6d 65 3a 20 73 |.Archive|-name: s|
|000000b0| 61 66 65 0a 0a 5b 20 42 | 65 74 77 65 65 6e 20 61 |afe..[ B|etween a|
|000000c0| 6e 20 61 6d 61 7a 69 6e | 67 6c 79 20 6d 61 73 73 |n amazin|gly mass|
|000000d0| 69 76 65 20 77 6f 72 6b | 20 63 72 75 6e 63 68 2c |ive work| crunch,|
|000000e0| 20 61 6e 64 20 74 68 65 | 20 72 65 70 6c 61 63 65 | and the| replace|
|000000f0| 6d 65 6e 74 20 6f 72 20 | 65 78 63 68 61 6e 67 65 |ment or |exchange|
|00000100| 0a 20 20 6f 66 20 62 6f | 74 68 20 6f 75 72 20 6d |. of bo|th our m|
|00000110| 69 6e 69 63 6f 6d 70 75 | 74 65 72 73 2c 20 74 68 |inicompu|ters, th|
|00000120| 65 72 65 20 68 61 73 20 | 62 65 65 6e 20 6e 6f 20 |ere has |been no |
|00000130| 6d 6f 64 2e 73 6f 75 72 | 63 65 73 20 70 6f 73 74 |mod.sour|ces post|
|00000140| 69 6e 67 73 20 66 6f 72 | 20 61 6c 6d 6f 73 74 0a |ings for| almost.|
|00000150| 20 20 61 20 6d 6f 6e 74 | 68 2e 20 20 53 6f 72 72 | a mont|h. Sorr|
|00000160| 79 2e 20 20 46 6f 72 20 | 74 68 69 73 20 70 72 6f |y. For |this pro|
|00000170| 67 72 61 6d 2c 20 49 20 | 77 72 6f 74 65 20 61 20 |gram, I |wrote a |
|00000180| 4d 61 6b 65 66 69 6c 65 | 20 61 6e 64 20 74 77 65 |Makefile| and twe|
|00000190| 61 6b 65 64 20 74 68 65 | 0a 20 20 6d 61 6e 70 61 |aked the|. manpa|
|000001a0| 67 65 20 61 20 62 69 74 | 2e 20 20 2d 2d 72 24 20 |ge a bit|. --r$ |
|000001b0| 5d 0a 0a 49 20 74 68 6f | 75 67 68 74 20 49 27 64 |]..I tho|ught I'd|
|000001c0| 20 73 65 6e 64 20 74 68 | 69 73 20 69 6e 20 73 69 | send th|is in si|
|000001d0| 6e 63 65 20 74 68 65 72 | 65 20 68 61 73 20 62 65 |nce ther|e has be|
|000001e0| 65 6e 20 73 6f 6d 65 20 | 64 69 73 63 75 73 73 69 |en some |discussi|
|000001f0| 6f 6e 20 61 62 6f 75 74 | 20 74 68 69 73 0a 73 6f |on about| this.so|
|00000200| 72 74 20 6f 66 20 70 72 | 6f 67 72 61 6d 2e 20 20 |rt of pr|ogram. |
|00000210| 49 20 68 61 76 65 20 74 | 65 73 74 65 64 2f 75 73 |I have t|ested/us|
|00000220| 65 64 20 69 74 20 6f 6e | 20 53 59 53 20 56 20 72 |ed it on| SYS V r|
|00000230| 32 2e 20 20 49 74 20 2a | 73 68 6f 75 6c 64 2a 20 |2. It *|should* |
|00000240| 62 65 20 70 6f 72 74 61 | 62 6c 65 2c 0a 74 68 6f |be porta|ble,.tho|
|00000250| 75 67 68 2e 0a 0a 09 09 | 09 09 09 4d 69 6b 65 20 |ugh.....|...Mike |
|00000260| 42 6c 61 63 6b 77 65 6c | 6c 0a 09 09 09 09 09 2e |Blackwel|l.......|
|00000270| 2e 2e 21 69 68 6e 70 34 | 21 61 69 63 63 68 69 21 |..!ihnp4|!aicchi!|
|00000280| 6d 64 62 09 28 55 53 45 | 4e 45 54 29 0a 0a 23 21 |mdb.(USE|NET)..#!|
|00000290| 2f 62 69 6e 2f 73 68 0a | 23 20 54 68 69 73 20 69 |/bin/sh.|# This i|
|000002a0| 73 20 61 20 73 68 65 6c | 6c 20 61 72 63 68 69 76 |s a shel|l archiv|
|000002b0| 65 2e 20 20 52 65 6d 6f | 76 65 20 61 6e 79 74 68 |e. Remo|ve anyth|
|000002c0| 69 6e 67 20 62 65 66 6f | 72 65 20 74 68 69 73 20 |ing befo|re this |
|000002d0| 6c 69 6e 65 2c 0a 23 20 | 74 68 65 6e 20 75 6e 70 |line,.# |then unp|
|000002e0| 61 63 6b 20 69 74 20 62 | 79 20 73 61 76 69 6e 67 |ack it b|y saving|
|000002f0| 20 69 74 20 69 6e 20 61 | 20 66 69 6c 65 20 61 6e | it in a| file an|
|00000300| 64 20 74 79 70 69 6e 67 | 20 22 73 68 20 66 69 6c |d typing| "sh fil|
|00000310| 65 22 2e 0a 23 20 49 66 | 20 61 6c 6c 20 67 6f 65 |e"..# If| all goe|
|00000320| 73 20 77 65 6c 6c 2c 20 | 79 6f 75 20 77 69 6c 6c |s well, |you will|
|00000330| 20 73 65 65 20 74 68 65 | 20 6d 65 73 73 61 67 65 | see the| message|
|00000340| 20 22 4e 6f 20 70 72 6f | 62 6c 65 6d 73 20 66 6f | "No pro|blems fo|
|00000350| 75 6e 64 2e 22 0a 0a 23 | 20 45 78 69 74 20 73 74 |und."..#| Exit st|
|00000360| 61 74 75 73 3b 20 73 65 | 74 20 74 6f 20 31 20 6f |atus; se|t to 1 o|
|00000370| 6e 20 22 77 63 22 20 65 | 72 72 6f 72 73 20 6f 72 |n "wc" e|rrors or|
|00000380| 20 69 66 20 77 6f 75 6c | 64 20 6f 76 65 72 77 72 | if woul|d overwr|
|00000390| 69 74 65 2e 0a 53 54 41 | 54 55 53 3d 30 0a 23 20 |ite..STA|TUS=0.# |
|000003a0| 43 6f 6e 74 65 6e 74 73 | 3a 20 20 4d 61 6b 65 66 |Contents|: Makef|
|000003b0| 69 6c 65 20 73 61 66 65 | 2e 31 20 73 61 66 65 2e |ile safe|.1 safe.|
|000003c0| 63 0a 20 0a 65 63 68 6f | 20 78 20 2d 20 4d 61 6b |c. .echo| x - Mak|
|000003d0| 65 66 69 6c 65 0a 69 66 | 20 74 65 73 74 20 2d 66 |efile.if| test -f|
|000003e0| 20 4d 61 6b 65 66 69 6c | 65 20 3b 20 74 68 65 6e | Makefil|e ; then|
|000003f0| 0a 20 20 20 20 65 63 68 | 6f 20 4d 61 6b 65 66 69 |. ech|o Makefi|
|00000400| 6c 65 20 65 78 69 73 74 | 73 2c 20 70 75 74 74 69 |le exist|s, putti|
|00000410| 6e 67 20 6f 75 74 70 75 | 74 20 69 6e 20 24 24 4d |ng outpu|t in $$M|
|00000420| 61 6b 65 66 69 6c 65 0a | 20 20 20 20 4f 55 54 3d |akefile.| OUT=|
|00000430| 24 24 4d 61 6b 65 66 69 | 6c 65 0a 20 20 20 20 53 |$$Makefi|le. S|
|00000440| 54 41 54 55 53 3d 31 0a | 65 6c 73 65 0a 20 20 20 |TATUS=1.|else. |
|00000450| 20 4f 55 54 3d 4d 61 6b | 65 66 69 6c 65 0a 66 69 | OUT=Mak|efile.fi|
|00000460| 0a 73 65 64 20 27 73 2f | 5e 58 2f 2f 27 20 3e 20 |.sed 's/|^X//' > |
|00000470| 24 4f 55 54 20 3c 3c 27 | 40 2f 2f 45 2a 4f 2a 46 |$OUT <<'|@//E*O*F|
|00000480| 20 4d 61 6b 65 66 69 6c | 65 2f 2f 27 0a 58 23 23 | Makefil|e//'.X##|
|00000490| 20 20 4d 41 4b 45 46 49 | 4c 45 20 46 4f 52 20 27 | MAKEFI|LE FOR '|
|000004a0| 53 41 46 45 27 0a 0a 58 | 43 46 4c 41 47 53 09 3d |SAFE'..X|CFLAGS.=|
|000004b0| 20 2d 4f 0a 0a 58 23 23 | 20 20 54 48 49 53 20 50 | -O..X##| THIS P|
|000004c0| 52 4f 47 52 41 4d 20 55 | 53 45 53 20 47 45 54 4f |ROGRAM U|SES GETO|
|000004d0| 50 54 3b 20 54 57 45 41 | 4b 20 54 48 45 20 4e 45 |PT; TWEA|K THE NE|
|000004e0| 58 54 20 4c 49 4e 45 20 | 41 53 20 4e 45 43 45 53 |XT LINE |AS NECES|
|000004f0| 53 41 52 59 20 46 4f 52 | 20 59 4f 55 0a 58 23 47 |SARY FOR| YOU.X#G|
|00000500| 45 54 4f 50 54 09 3d 20 | 2d 6c 67 65 74 6f 70 74 |ETOPT.= |-lgetopt|
|00000510| 0a 0a 58 73 61 66 65 3a | 09 73 61 66 65 2e 63 0a |..Xsafe:|.safe.c.|
|00000520| 58 09 63 63 20 24 28 43 | 46 4c 41 47 53 29 20 2d |X.cc $(C|FLAGS) -|
|00000530| 6f 20 73 61 66 65 20 24 | 28 47 45 54 4f 50 54 29 |o safe $|(GETOPT)|
|00000540| 0a 0a 0a 58 69 6e 73 74 | 61 6c 6c 3a 0a 58 09 40 |...Xinst|all:.X.@|
|00000550| 65 63 68 6f 20 43 6f 70 | 79 20 73 61 66 65 20 61 |echo Cop|y safe a|
|00000560| 6e 64 20 74 68 65 20 6d | 61 6e 70 61 67 65 20 74 |nd the m|anpage t|
|00000570| 6f 20 77 68 65 72 65 76 | 65 72 20 69 73 20 61 70 |o wherev|er is ap|
|00000580| 70 72 6f 70 72 69 61 74 | 65 0a 40 2f 2f 45 2a 4f |propriat|e.@//E*O|
|00000590| 2a 46 20 4d 61 6b 65 66 | 69 6c 65 2f 2f 0a 63 68 |*F Makef|ile//.ch|
|000005a0| 6d 6f 64 20 75 3d 72 77 | 2c 67 3d 72 77 2c 6f 3d |mod u=rw|,g=rw,o=|
|000005b0| 72 77 20 24 4f 55 54 0a | 20 0a 65 63 68 6f 20 78 |rw $OUT.| .echo x|
|000005c0| 20 2d 20 73 61 66 65 2e | 31 0a 69 66 20 74 65 73 | - safe.|1.if tes|
|000005d0| 74 20 2d 66 20 73 61 66 | 65 2e 31 20 3b 20 74 68 |t -f saf|e.1 ; th|
|000005e0| 65 6e 0a 20 20 20 20 65 | 63 68 6f 20 73 61 66 65 |en. e|cho safe|
|000005f0| 2e 31 20 65 78 69 73 74 | 73 2c 20 70 75 74 74 69 |.1 exist|s, putti|
|00000600| 6e 67 20 6f 75 74 70 75 | 74 20 69 6e 20 24 24 73 |ng outpu|t in $$s|
|00000610| 61 66 65 2e 31 0a 20 20 | 20 20 4f 55 54 3d 24 24 |afe.1. | OUT=$$|
|00000620| 73 61 66 65 2e 31 0a 20 | 20 20 20 53 54 41 54 55 |safe.1. | STATU|
|00000630| 53 3d 31 0a 65 6c 73 65 | 0a 20 20 20 20 4f 55 54 |S=1.else|. OUT|
|00000640| 3d 73 61 66 65 2e 31 0a | 66 69 0a 73 65 64 20 27 |=safe.1.|fi.sed '|
|00000650| 73 2f 5e 58 2f 2f 27 20 | 3e 20 24 4f 55 54 20 3c |s/^X//' |> $OUT <|
|00000660| 3c 27 40 2f 2f 45 2a 4f | 2a 46 20 73 61 66 65 2e |<'@//E*O|*F safe.|
|00000670| 31 2f 2f 27 0a 58 2e 54 | 48 20 53 41 46 45 20 31 |1//'.X.T|H SAFE 1|
|00000680| 4c 0a 58 2e 53 48 20 4e | 41 4d 45 0a 58 73 61 66 |L.X.SH N|AME.Xsaf|
|00000690| 65 20 5c 2d 20 6b 69 6c | 6c 20 61 20 70 72 6f 63 |e \- kil|l a proc|
|000006a0| 65 73 73 20 61 66 74 65 | 72 20 73 70 65 63 69 66 |ess afte|r specif|
|000006b0| 69 65 64 20 74 69 6d 65 | 2e 0a 58 2e 53 48 20 53 |ied time|..X.SH S|
|000006c0| 59 4e 4f 50 53 49 53 0a | 58 2e 42 20 73 61 66 65 |YNOPSIS.|X.B safe|
|000006d0| 20 2d 64 20 3c 64 65 6c | 61 79 3e 20 2d 77 20 3c | -d <del|ay> -w <|
|000006e0| 77 61 72 6e 69 6e 67 3e | 20 2d 62 20 63 6f 6d 6d |warning>| -b comm|
|000006f0| 61 6e 64 5f 6c 69 6e 65 | 0a 58 2e 53 48 20 44 45 |and_line|.X.SH DE|
|00000700| 53 43 52 49 50 54 49 4f | 4e 0a 58 2e 49 20 53 61 |SCRIPTIO|N.X.I Sa|
|00000710| 66 65 0a 58 65 78 65 63 | 75 74 65 73 20 74 68 65 |fe.Xexec|utes the|
|00000720| 20 67 69 76 65 6e 0a 58 | 2e 42 52 20 63 6f 6d 6d | given.X|.BR comm|
|00000730| 61 6e 64 5f 6c 69 6e 65 | 20 2c 0a 58 6b 69 6c 6c |and_line| ,.Xkill|
|00000740| 69 6e 67 20 74 68 65 20 | 70 72 6f 63 65 73 73 20 |ing the |process |
|00000750| 69 66 20 69 74 20 69 73 | 20 73 74 69 6c 6c 20 72 |if it is| still r|
|00000760| 75 6e 6e 69 6e 67 20 61 | 66 74 65 72 0a 58 2e 42 |unning a|fter.X.B|
|00000770| 20 64 65 6c 61 79 0a 58 | 73 65 63 6f 6e 64 73 2e | delay.X|seconds.|
|00000780| 0a 58 49 66 20 74 68 65 | 20 2d 77 20 6f 70 74 69 |.XIf the| -w opti|
|00000790| 6f 6e 20 69 73 20 73 70 | 65 63 69 66 69 65 64 2c |on is sp|ecified,|
|000007a0| 20 61 20 77 61 72 6e 69 | 6e 67 20 77 69 6c 6c 20 | a warni|ng will |
|000007b0| 62 65 20 67 69 76 65 6e | 0a 58 2e 42 20 77 61 72 |be given|.X.B war|
|000007c0| 6e 69 6e 67 0a 58 73 65 | 63 6f 6e 64 73 20 62 65 |ning.Xse|conds be|
|000007d0| 66 6f 72 65 20 74 68 65 | 20 70 72 6f 63 65 73 73 |fore the| process|
|000007e0| 20 69 73 20 74 6f 20 62 | 65 20 74 65 72 6d 69 6e | is to b|e termin|
|000007f0| 61 74 65 64 2e 0a 58 54 | 68 65 20 2d 62 20 6f 70 |ated..XT|he -b op|
|00000800| 74 69 6f 6e 20 73 75 70 | 72 65 73 73 65 73 20 74 |tion sup|resses t|
|00000810| 68 65 20 74 65 78 74 20 | 6f 66 20 74 68 65 20 77 |he text |of the w|
|00000820| 61 72 6e 69 6e 67 20 6d | 65 73 73 61 67 65 20 61 |arning m|essage a|
|00000830| 6e 64 20 6f 6e 6c 79 20 | 62 65 65 70 73 20 74 68 |nd only |beeps th|
|00000840| 65 0a 58 74 65 72 6d 69 | 6e 61 6c 3b 20 74 68 69 |e.Xtermi|nal; thi|
|00000850| 73 20 69 73 20 75 73 65 | 66 75 6c 20 69 66 20 79 |s is use|ful if y|
|00000860| 6f 75 20 61 72 65 20 69 | 6e 20 61 20 73 63 72 65 |ou are i|n a scre|
|00000870| 65 6e 20 6f 72 69 65 6e | 74 65 64 20 70 72 6f 67 |en orien|ted prog|
|00000880| 72 61 6d 2e 0a 58 2e 50 | 50 0a 58 49 20 77 72 6f |ram..X.P|P.XI wro|
|00000890| 74 65 20 74 68 69 73 20 | 70 72 6f 67 72 61 6d 20 |te this |program |
|000008a0| 74 6f 20 6d 61 6b 65 20 | 69 74 20 65 61 73 69 65 |to make |it easie|
|000008b0| 72 20 74 6f 20 74 65 73 | 74 20 61 20 70 72 6f 67 |r to tes|t a prog|
|000008c0| 72 61 6d 20 74 68 61 74 | 20 77 61 73 20 64 6f 69 |ram that| was doi|
|000008d0| 6e 67 0a 58 73 6f 6d 65 | 20 73 74 72 61 6e 67 65 |ng.Xsome| strange|
|000008e0| 20 69 6f 63 74 6c 73 2e | 0a 58 48 6f 77 65 76 65 | ioctls.|.XHoweve|
|000008f0| 72 20 69 74 20 73 65 65 | 6d 73 20 74 6f 20 68 61 |r it see|ms to ha|
|00000900| 76 65 20 6d 61 6e 79 20 | 75 73 65 73 2c 20 69 6e |ve many |uses, in|
|00000910| 63 6c 75 64 69 6e 67 0a | 58 63 6f 6e 74 72 6f 6c |cluding.|Xcontrol|
|00000920| 6c 69 6e 67 20 6e 65 74 | 6e 65 77 73 20 61 64 64 |ling net|news add|
|00000930| 69 63 74 69 6f 6e 2e 0a | 58 2e 53 48 20 41 55 54 |iction..|X.SH AUT|
|00000940| 48 4f 52 0a 58 4d 69 6b | 65 20 42 6c 61 63 6b 77 |HOR.XMik|e Blackw|
|00000950| 65 6c 6c 20 20 2d 20 20 | 55 53 45 4e 45 54 3a 20 |ell - |USENET: |
|00000960| 20 2e 2e 2e 21 69 68 6e | 70 34 21 61 69 63 63 68 | ...!ihn|p4!aicch|
|00000970| 69 21 6d 64 62 0a 58 2e | 53 48 20 4e 4f 54 45 53 |i!mdb.X.|SH NOTES|
|00000980| 0a 58 54 68 65 20 70 72 | 6f 67 72 61 6d 20 74 72 |.XThe pr|ogram tr|
|00000990| 61 70 73 20 53 49 47 49 | 4e 54 20 61 6e 64 20 75 |aps SIGI|NT and u|
|000009a0| 73 65 73 20 69 74 20 74 | 6f 20 74 65 72 6d 69 6e |ses it t|o termin|
|000009b0| 61 74 65 20 74 68 65 20 | 70 72 6f 63 65 73 73 2e |ate the |process.|
|000009c0| 0a 58 49 20 68 61 76 65 | 6e 27 74 20 72 75 6e 20 |.XI have|n't run |
|000009d0| 69 6e 74 6f 20 61 6e 79 | 20 70 72 6f 62 6c 65 6d |into any| problem|
|000009e0| 73 20 77 69 74 68 20 74 | 68 69 73 2c 20 62 75 74 |s with t|his, but|
|000009f0| 20 69 74 20 63 6f 75 6c | 64 20 62 65 20 61 20 70 | it coul|d be a p|
|00000a00| 72 6f 62 6c 65 6d 20 77 | 69 74 68 0a 58 73 6f 6d |roblem w|ith.Xsom|
|00000a10| 65 20 70 72 6f 67 72 61 | 6d 73 2e 0a 0a 40 2f 2f |e progra|ms...@//|
|00000a20| 45 2a 4f 2a 46 20 73 61 | 66 65 2e 31 2f 2f 0a 63 |E*O*F sa|fe.1//.c|
|00000a30| 68 6d 6f 64 20 75 3d 72 | 77 2c 67 3d 72 77 2c 6f |hmod u=r|w,g=rw,o|
|00000a40| 3d 72 77 20 24 4f 55 54 | 0a 20 0a 65 63 68 6f 20 |=rw $OUT|. .echo |
|00000a50| 78 20 2d 20 73 61 66 65 | 2e 63 0a 69 66 20 74 65 |x - safe|.c.if te|
|00000a60| 73 74 20 2d 66 20 73 61 | 66 65 2e 63 20 3b 20 74 |st -f sa|fe.c ; t|
|00000a70| 68 65 6e 0a 20 20 20 20 | 65 63 68 6f 20 73 61 66 |hen. |echo saf|
|00000a80| 65 2e 63 20 65 78 69 73 | 74 73 2c 20 70 75 74 74 |e.c exis|ts, putt|
|00000a90| 69 6e 67 20 6f 75 74 70 | 75 74 20 69 6e 20 24 24 |ing outp|ut in $$|
|00000aa0| 73 61 66 65 2e 63 0a 20 | 20 20 20 4f 55 54 3d 24 |safe.c. | OUT=$|
|00000ab0| 24 73 61 66 65 2e 63 0a | 20 20 20 20 53 54 41 54 |$safe.c.| STAT|
|00000ac0| 55 53 3d 31 0a 65 6c 73 | 65 0a 20 20 20 20 4f 55 |US=1.els|e. OU|
|00000ad0| 54 3d 73 61 66 65 2e 63 | 0a 66 69 0a 73 65 64 20 |T=safe.c|.fi.sed |
|00000ae0| 27 73 2f 5e 58 2f 2f 27 | 20 3e 20 24 4f 55 54 20 |'s/^X//'| > $OUT |
|00000af0| 3c 3c 27 40 2f 2f 45 2a | 4f 2a 46 20 73 61 66 65 |<<'@//E*|O*F safe|
|00000b00| 2e 63 2f 2f 27 0a 58 2f | 2a 20 73 61 66 65 20 2d |.c//'.X/|* safe -|
|00000b10| 20 4d 69 6b 65 20 42 6c | 61 63 6b 77 65 6c 6c 20 | Mike Bl|ackwell |
|00000b20| 2d 20 41 75 67 20 31 39 | 38 36 20 2a 2f 0a 58 2f |- Aug 19|86 */.X/|
|00000b30| 2a 20 73 61 66 65 2e 63 | 20 2d 20 73 61 66 65 67 |* safe.c| - safeg|
|00000b40| 75 61 72 64 20 61 20 70 | 72 6f 67 72 61 6d 3a 20 |uard a p|rogram: |
|00000b50| 6b 69 6c 6c 20 69 74 20 | 61 66 74 65 72 20 60 6e |kill it |after `n|
|00000b60| 60 20 73 65 63 6f 6e 64 | 73 20 69 66 20 69 74 73 |` second|s if its|
|00000b70| 20 73 74 69 6c 6c 20 61 | 6c 69 76 65 20 2a 2f 0a | still a|live */.|
|00000b80| 0a 58 23 69 6e 63 6c 75 | 64 65 20 3c 73 69 67 6e |.X#inclu|de <sign|
|00000b90| 61 6c 2e 68 3e 0a 58 23 | 69 6e 63 6c 75 64 65 20 |al.h>.X#|include |
|00000ba0| 3c 73 74 64 69 6f 2e 68 | 3e 0a 0a 58 2f 2a 20 64 |<stdio.h|>..X/* d|
|00000bb0| 65 6c 61 79 20 63 6f 6e | 73 74 61 6e 74 73 20 2a |elay con|stants *|
|00000bc0| 2f 0a 58 23 64 65 66 69 | 6e 65 20 4d 49 4e 44 45 |/.X#defi|ne MINDE|
|00000bd0| 4c 41 59 09 31 30 0a 58 | 23 64 65 66 69 6e 65 20 |LAY.10.X|#define |
|00000be0| 4d 41 58 44 45 4c 41 59 | 09 36 30 2a 36 30 0a 58 |MAXDELAY|.60*60.X|
|00000bf0| 23 64 65 66 69 6e 65 20 | 44 45 46 44 45 4c 41 59 |#define |DEFDELAY|
|00000c00| 09 36 30 0a 58 23 64 65 | 66 69 6e 65 20 44 4c 59 |.60.X#de|fine DLY|
|00000c10| 4d 53 47 09 09 22 73 61 | 66 65 3a 20 3c 64 65 6c |MSG.."sa|fe: <del|
|00000c20| 61 79 3e 20 6d 75 73 74 | 20 62 65 20 62 65 74 77 |ay> must| be betw|
|00000c30| 65 65 6e 20 25 64 20 61 | 6e 64 20 25 64 20 73 65 |een %d a|nd %d se|
|00000c40| 63 6f 6e 64 73 5c 6e 22 | 0a 58 23 64 65 66 69 6e |conds\n"|.X#defin|
|00000c50| 65 20 57 41 52 4e 49 4e | 47 09 09 22 5c 30 30 37 |e WARNIN|G.."\007|
|00000c60| 5c 30 30 37 73 61 66 65 | 3a 20 6b 69 6c 6c 69 6e |\007safe|: killin|
|00000c70| 67 20 70 72 6f 63 65 73 | 73 20 25 64 20 69 6e 20 |g proces|s %d in |
|00000c80| 25 64 20 73 65 63 6f 6e | 64 73 5c 6e 22 0a 58 23 |%d secon|ds\n".X#|
|00000c90| 64 65 66 69 6e 65 20 42 | 45 4c 4c 09 09 22 5c 30 |define B|ELL.."\0|
|00000ca0| 30 37 5c 30 30 37 22 0a | 58 23 64 65 66 69 6e 65 |07\007".|X#define|
|00000cb0| 20 55 53 41 47 45 09 09 | 22 55 73 61 67 65 3a 5c | USAGE..|"Usage:\|
|00000cc0| 6e 5c 74 73 61 66 65 20 | 2d 64 20 3c 64 65 6c 61 |n\tsafe |-d <dela|
|00000cd0| 79 3e 20 2d 62 20 2d 77 | 20 3c 77 61 72 6e 69 6e |y> -b -w| <warnin|
|00000ce0| 67 3e 5c 6e 22 0a 0a 58 | 69 6e 74 20 70 69 64 3b |g>\n"..X|int pid;|
|00000cf0| 0a 0a 58 6d 61 69 6e 28 | 61 72 67 63 2c 61 72 67 |..Xmain(|argc,arg|
|00000d00| 76 29 0a 58 69 6e 74 20 | 61 72 67 63 3b 0a 58 63 |v).Xint |argc;.Xc|
|00000d10| 68 61 72 20 2a 61 72 67 | 76 5b 5d 3b 0a 58 7b 0a |har *arg|v[];.X{.|
|00000d20| 58 09 69 6e 74 20 64 6f | 6e 65 28 29 2c 6d 61 69 |X.int do|ne(),mai|
|00000d30| 6d 28 29 3b 0a 58 09 75 | 6e 73 69 67 6e 65 64 20 |m();.X.u|nsigned |
|00000d40| 69 6e 74 20 64 65 6c 61 | 79 20 3d 20 44 45 46 44 |int dela|y = DEFD|
|00000d50| 45 4c 41 59 3b 0a 58 09 | 75 6e 73 69 67 6e 65 64 |ELAY;.X.|unsigned|
|00000d60| 20 69 6e 74 20 77 61 72 | 6e 64 65 6c 61 79 20 3d | int war|ndelay =|
|00000d70| 20 30 3b 0a 58 09 69 6e | 74 20 6f 70 74 3b 0a 58 | 0;.X.in|t opt;.X|
|00000d80| 09 65 78 74 65 72 6e 20 | 63 68 61 72 20 2a 6f 70 |.extern |char *op|
|00000d90| 74 61 72 67 3b 0a 58 09 | 65 78 74 65 72 6e 20 69 |targ;.X.|extern i|
|00000da0| 6e 74 20 6f 70 74 69 6e | 64 3b 0a 58 09 73 68 6f |nt optin|d;.X.sho|
|00000db0| 72 74 20 69 6e 74 20 62 | 65 6c 6c 20 3d 20 30 3b |rt int b|ell = 0;|
|00000dc0| 0a 0a 58 09 77 68 69 6c | 65 20 28 28 6f 70 74 20 |..X.whil|e ((opt |
|00000dd0| 3d 20 67 65 74 6f 70 74 | 28 61 72 67 63 2c 61 72 |= getopt|(argc,ar|
|00000de0| 67 76 2c 22 64 3a 62 77 | 3a 22 29 29 20 21 3d 20 |gv,"d:bw|:")) != |
|00000df0| 45 4f 46 29 20 7b 0a 58 | 09 09 73 77 69 74 63 68 |EOF) {.X|..switch|
|00000e00| 20 28 6f 70 74 29 20 7b | 0a 58 09 09 63 61 73 65 | (opt) {|.X..case|
|00000e10| 20 27 64 27 3a 0a 58 09 | 09 09 73 73 63 61 6e 66 | 'd':.X.|..sscanf|
|00000e20| 28 6f 70 74 61 72 67 2c | 22 25 64 22 2c 26 64 65 |(optarg,|"%d",&de|
|00000e30| 6c 61 79 29 3b 0a 58 09 | 09 09 69 66 20 28 64 65 |lay);.X.|..if (de|
|00000e40| 6c 61 79 20 3c 20 4d 49 | 4e 44 45 4c 41 59 20 7c |lay < MI|NDELAY ||
|00000e50| 7c 20 64 65 6c 61 79 20 | 3e 20 4d 41 58 44 45 4c || delay |> MAXDEL|
|00000e60| 41 59 29 20 7b 0a 58 09 | 09 09 09 66 70 72 69 6e |AY) {.X.|...fprin|
|00000e70| 74 66 28 73 74 64 65 72 | 72 2c 44 4c 59 4d 53 47 |tf(stder|r,DLYMSG|
|00000e80| 2c 4d 49 4e 44 45 4c 41 | 59 2c 4d 41 58 44 45 4c |,MINDELA|Y,MAXDEL|
|00000e90| 41 59 29 3b 0a 58 09 09 | 09 09 65 78 69 74 28 2d |AY);.X..|..exit(-|
|00000ea0| 31 29 3b 0a 58 09 09 09 | 7d 0a 58 09 09 09 62 72 |1);.X...|}.X...br|
|00000eb0| 65 61 6b 3b 0a 58 09 09 | 63 61 73 65 20 27 62 27 |eak;.X..|case 'b'|
|00000ec0| 3a 0a 58 09 09 09 62 65 | 6c 6c 20 3d 20 31 3b 0a |:.X...be|ll = 1;.|
|00000ed0| 58 09 09 09 62 72 65 61 | 6b 3b 0a 58 09 09 63 61 |X...brea|k;.X..ca|
|00000ee0| 73 65 20 27 77 27 3a 0a | 58 09 09 09 73 73 63 61 |se 'w':.|X...ssca|
|00000ef0| 6e 66 28 6f 70 74 61 72 | 67 2c 22 25 64 22 2c 26 |nf(optar|g,"%d",&|
|00000f00| 77 61 72 6e 64 65 6c 61 | 79 29 3b 0a 58 09 09 09 |warndela|y);.X...|
|00000f10| 62 72 65 61 6b 3b 0a 58 | 09 09 63 61 73 65 20 27 |break;.X|..case '|
|00000f20| 3f 27 3a 0a 58 09 09 09 | 66 70 72 69 6e 74 66 28 |?':.X...|fprintf(|
|00000f30| 73 74 64 65 72 72 2c 55 | 53 41 47 45 29 3b 0a 58 |stderr,U|SAGE);.X|
|00000f40| 09 09 09 65 78 69 74 28 | 2d 31 29 3b 0a 58 09 09 |...exit(|-1);.X..|
|00000f50| 09 62 72 65 61 6b 3b 0a | 58 09 09 7d 0a 58 09 7d |.break;.|X..}.X.}|
|00000f60| 0a 0a 58 09 69 66 20 28 | 61 72 67 76 5b 6f 70 74 |..X.if (|argv[opt|
|00000f70| 69 6e 64 5d 20 3d 3d 20 | 4e 55 4c 4c 29 20 7b 0a |ind] == |NULL) {.|
|00000f80| 58 09 09 66 70 72 69 6e | 74 66 28 73 74 64 65 72 |X..fprin|tf(stder|
|00000f90| 72 2c 22 73 61 66 65 3a | 20 6e 6f 20 70 72 6f 67 |r,"safe:| no prog|
|00000fa0| 72 61 6d 20 74 6f 20 65 | 78 65 63 75 74 65 5c 6e |ram to e|xecute\n|
|00000fb0| 22 29 3b 0a 58 09 09 65 | 78 69 74 28 31 29 3b 0a |");.X..e|xit(1);.|
|00000fc0| 58 09 7d 0a 0a 58 09 69 | 66 20 28 77 61 72 6e 64 |X.}..X.i|f (warnd|
|00000fd0| 65 6c 61 79 20 3e 3d 20 | 64 65 6c 61 79 29 20 7b |elay >= |delay) {|
|00000fe0| 0a 58 09 09 66 70 72 69 | 6e 74 66 28 73 74 64 65 |.X..fpri|ntf(stde|
|00000ff0| 72 72 2c 0a 58 09 20 20 | 22 73 61 66 65 3a 20 64 |rr,.X. |"safe: d|
|00001000| 65 6c 61 79 20 6c 65 73 | 73 20 74 68 61 6e 20 77 |elay les|s than w|
|00001010| 61 72 6e 69 6e 67 20 74 | 69 6d 65 2c 20 6e 6f 20 |arning t|ime, no |
|00001020| 77 61 72 6e 69 6e 67 20 | 77 69 6c 6c 20 62 65 20 |warning |will be |
|00001030| 67 69 76 65 6e 5c 6e 22 | 29 3b 0a 58 09 09 77 61 |given\n"|);.X..wa|
|00001040| 72 6e 64 65 6c 61 79 20 | 3d 20 30 3b 0a 58 09 7d |rndelay |= 0;.X.}|
|00001050| 0a 0a 58 09 69 66 20 28 | 64 65 6c 61 79 20 3e 20 |..X.if (|delay > |
|00001060| 77 61 72 6e 64 65 6c 61 | 79 29 20 7b 0a 58 09 09 |warndela|y) {.X..|
|00001070| 64 65 6c 61 79 20 2d 3d | 20 77 61 72 6e 64 65 6c |delay -=| warndel|
|00001080| 61 79 3b 0a 58 09 7d 0a | 0a 58 09 70 69 64 20 3d |ay;.X.}.|.X.pid =|
|00001090| 20 66 6f 72 6b 28 29 3b | 0a 58 09 69 66 20 28 70 | fork();|.X.if (p|
|000010a0| 69 64 20 3d 3d 20 2d 31 | 29 20 7b 0a 58 09 09 66 |id == -1|) {.X..f|
|000010b0| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 22 73 |printf(s|tderr,"s|
|000010c0| 61 66 65 3a 20 43 61 6e | 27 74 20 66 6f 72 6b 5c |afe: Can|'t fork\|
|000010d0| 6e 22 29 3b 0a 58 09 09 | 70 65 72 72 6f 72 28 22 |n");.X..|perror("|
|000010e0| 73 61 66 65 22 29 3b 0a | 58 09 09 65 78 69 74 28 |safe");.|X..exit(|
|000010f0| 2d 31 29 3b 0a 58 09 7d | 0a 58 09 69 66 20 28 70 |-1);.X.}|.X.if (p|
|00001100| 69 64 20 3d 3d 20 30 29 | 20 7b 09 09 2f 2a 20 63 |id == 0)| {../* c|
|00001110| 68 69 6c 64 20 70 72 6f | 63 65 73 73 20 2a 2f 0a |hild pro|cess */.|
|00001120| 58 09 09 69 66 20 28 65 | 78 65 63 76 70 28 61 72 |X..if (e|xecvp(ar|
|00001130| 67 76 5b 6f 70 74 69 6e | 64 5d 2c 26 61 72 67 76 |gv[optin|d],&argv|
|00001140| 5b 6f 70 74 69 6e 64 5d | 29 20 3d 3d 20 2d 31 29 |[optind]|) == -1)|
|00001150| 20 7b 0a 58 09 09 09 70 | 65 72 72 6f 72 28 22 73 | {.X...p|error("s|
|00001160| 61 66 65 22 29 3b 0a 58 | 09 09 09 65 78 69 74 28 |afe");.X|...exit(|
|00001170| 2d 31 29 3b 0a 58 09 09 | 7d 0a 58 09 7d 20 65 6c |-1);.X..|}.X.} el|
|00001180| 73 65 20 7b 09 09 2f 2a | 20 70 61 72 65 6e 74 20 |se {../*| parent |
|00001190| 2d 20 6d 6f 6e 69 74 6f | 72 20 61 6e 64 20 6b 69 |- monito|r and ki|
|000011a0| 6c 6c 20 2a 2f 0a 58 09 | 09 73 69 67 6e 61 6c 28 |ll */.X.|.signal(|
|000011b0| 53 49 47 43 4c 44 2c 64 | 6f 6e 65 29 3b 0a 58 09 |SIGCLD,d|one);.X.|
|000011c0| 09 73 69 67 6e 61 6c 28 | 53 49 47 49 4e 54 2c 6d |.signal(|SIGINT,m|
|000011d0| 61 69 6d 29 3b 0a 58 09 | 09 73 6c 65 65 70 28 64 |aim);.X.|.sleep(d|
|000011e0| 65 6c 61 79 29 3b 0a 58 | 09 09 69 66 20 28 77 61 |elay);.X|..if (wa|
|000011f0| 72 6e 64 65 6c 61 79 20 | 21 3d 20 30 29 20 7b 0a |rndelay |!= 0) {.|
|00001200| 58 09 09 09 69 66 20 28 | 62 65 6c 6c 29 0a 58 09 |X...if (|bell).X.|
|00001210| 09 09 09 66 70 72 69 6e | 74 66 28 73 74 64 65 72 |...fprin|tf(stder|
|00001220| 72 2c 42 45 4c 4c 29 3b | 0a 58 09 09 09 65 6c 73 |r,BELL);|.X...els|
|00001230| 65 0a 58 09 09 09 09 66 | 70 72 69 6e 74 66 28 73 |e.X....f|printf(s|
|00001240| 74 64 65 72 72 2c 57 41 | 52 4e 49 4e 47 2c 70 69 |tderr,WA|RNING,pi|
|00001250| 64 2c 77 61 72 6e 64 65 | 6c 61 79 29 3b 0a 58 09 |d,warnde|lay);.X.|
|00001260| 09 09 73 6c 65 65 70 28 | 77 61 72 6e 64 65 6c 61 |..sleep(|warndela|
|00001270| 79 29 3b 0a 58 09 09 7d | 0a 58 09 09 6d 61 69 6d |y);.X..}|.X..maim|
|00001280| 28 29 3b 0a 58 09 09 65 | 78 69 74 28 31 29 3b 0a |();.X..e|xit(1);.|
|00001290| 58 09 7d 0a 58 7d 0a 0a | 58 6d 61 69 6d 28 29 0a |X.}.X}..|Xmaim().|
|000012a0| 58 7b 0a 58 09 73 69 67 | 6e 61 6c 28 53 49 47 43 |X{.X.sig|nal(SIGC|
|000012b0| 4c 44 2c 53 49 47 5f 49 | 47 4e 29 3b 0a 58 09 6b |LD,SIG_I|GN);.X.k|
|000012c0| 69 6c 6c 28 70 69 64 2c | 53 49 47 4b 49 4c 4c 29 |ill(pid,|SIGKILL)|
|000012d0| 3b 0a 58 09 66 70 72 69 | 6e 74 66 28 73 74 64 65 |;.X.fpri|ntf(stde|
|000012e0| 72 72 2c 22 73 61 66 65 | 3a 20 50 72 6f 63 65 73 |rr,"safe|: Proces|
|000012f0| 73 20 25 64 20 6b 69 6c | 6c 65 64 20 5c 6e 22 2c |s %d kil|led \n",|
|00001300| 70 69 64 29 3b 0a 58 09 | 65 78 69 74 28 31 29 3b |pid);.X.|exit(1);|
|00001310| 0a 58 7d 0a 0a 58 64 6f | 6e 65 28 29 0a 58 7b 0a |.X}..Xdo|ne().X{.|
|00001320| 58 09 66 70 72 69 6e 74 | 66 28 73 74 64 65 72 72 |X.fprint|f(stderr|
|00001330| 2c 22 73 61 66 65 3a 20 | 50 72 6f 63 65 73 73 20 |,"safe: |Process |
|00001340| 74 65 72 6d 69 6e 61 74 | 65 64 5c 6e 22 29 3b 0a |terminat|ed\n");.|
|00001350| 58 09 65 78 69 74 28 30 | 29 3b 0a 58 7d 0a 40 2f |X.exit(0|);.X}.@/|
|00001360| 2f 45 2a 4f 2a 46 20 73 | 61 66 65 2e 63 2f 2f 0a |/E*O*F s|afe.c//.|
|00001370| 63 68 6d 6f 64 20 75 3d | 72 77 2c 67 3d 72 77 2c |chmod u=|rw,g=rw,|
|00001380| 6f 3d 72 77 20 24 4f 55 | 54 0a 20 0a 65 63 68 6f |o=rw $OU|T. .echo|
|00001390| 20 49 6e 73 70 65 63 74 | 69 6e 67 20 66 6f 72 20 | Inspect|ing for |
|000013a0| 64 61 6d 61 67 65 20 69 | 6e 20 74 72 61 6e 73 69 |damage i|n transi|
|000013b0| 74 2e 2e 2e 0a 74 65 6d | 70 3d 2f 74 6d 70 2f 73 |t....tem|p=/tmp/s|
|000013c0| 68 61 72 69 6e 24 24 3b | 20 64 74 65 6d 70 3d 2f |harin$$;| dtemp=/|
|000013d0| 74 6d 70 2f 73 68 61 72 | 6f 75 74 24 24 0a 74 72 |tmp/shar|out$$.tr|
|000013e0| 61 70 20 22 72 6d 20 2d | 66 20 24 74 65 6d 70 20 |ap "rm -|f $temp |
|000013f0| 24 64 74 65 6d 70 3b 20 | 65 78 69 74 22 20 30 20 |$dtemp; |exit" 0 |
|00001400| 31 20 32 20 33 20 31 35 | 0a 63 61 74 20 3e 20 24 |1 2 3 15|.cat > $|
|00001410| 74 65 6d 70 20 3c 3c 5c | 21 21 21 0a 20 20 20 20 |temp <<\|!!!. |
|00001420| 20 20 31 33 20 20 20 20 | 20 20 34 31 20 20 20 20 | 13 | 41 |
|00001430| 20 32 34 35 20 4d 61 6b | 65 66 69 6c 65 0a 20 20 | 245 Mak|efile. |
|00001440| 20 20 20 20 32 39 20 20 | 20 20 20 31 35 39 20 20 | 29 | 159 |
|00001450| 20 20 20 39 30 38 20 73 | 61 66 65 2e 31 0a 20 20 | 908 s|afe.1. |
|00001460| 20 20 20 31 30 36 20 20 | 20 20 20 32 36 39 20 20 | 106 | 269 |
|00001470| 20 20 32 30 34 31 20 73 | 61 66 65 2e 63 0a 20 20 | 2041 s|afe.c. |
|00001480| 20 20 20 31 34 38 20 20 | 20 20 20 34 36 39 20 20 | 148 | 469 |
|00001490| 20 20 33 31 39 34 20 74 | 6f 74 61 6c 0a 21 21 21 | 3194 t|otal.!!!|
|000014a0| 0a 77 63 20 20 4d 61 6b | 65 66 69 6c 65 20 73 61 |.wc Mak|efile sa|
|000014b0| 66 65 2e 31 20 73 61 66 | 65 2e 63 20 7c 20 73 65 |fe.1 saf|e.c | se|
|000014c0| 64 20 27 73 3d 5b 5e 20 | 5d 2a 2f 3d 3d 27 20 7c |d 's=[^ |]*/==' ||
|000014d0| 20 64 69 66 66 20 2d 62 | 20 24 74 65 6d 70 20 2d | diff -b| $temp -|
|000014e0| 20 3e 24 64 74 65 6d 70 | 0a 69 66 20 74 65 73 74 | >$dtemp|.if test|
|000014f0| 20 2d 73 20 24 64 74 65 | 6d 70 20 3b 20 74 68 65 | -s $dte|mp ; the|
|00001500| 6e 0a 20 20 20 20 65 63 | 68 6f 20 22 4f 75 63 68 |n. ec|ho "Ouch|
|00001510| 20 5b 64 69 66 66 20 6f | 66 20 77 63 20 6f 75 74 | [diff o|f wc out|
|00001520| 70 75 74 5d 3a 22 0a 20 | 20 20 20 63 61 74 20 24 |put]:". | cat $|
|00001530| 64 74 65 6d 70 0a 20 20 | 20 20 53 54 41 54 55 53 |dtemp. | STATUS|
|00001540| 3d 31 0a 65 6c 69 66 20 | 74 65 73 74 20 24 53 54 |=1.elif |test $ST|
|00001550| 41 54 55 53 20 3d 20 30 | 20 3b 20 74 68 65 6e 0a |ATUS = 0| ; then.|
|00001560| 20 20 20 20 65 63 68 6f | 20 22 4e 6f 20 70 72 6f | echo| "No pro|
|00001570| 62 6c 65 6d 73 20 66 6f | 75 6e 64 2e 22 0a 65 6c |blems fo|und.".el|
|00001580| 73 65 0a 20 20 20 20 65 | 63 68 6f 20 22 57 41 52 |se. e|cho "WAR|
|00001590| 4e 49 4e 47 20 2d 2d 20 | 50 52 4f 42 4c 45 4d 53 |NING -- |PROBLEMS|
|000015a0| 20 57 45 52 45 20 46 4f | 55 4e 44 2e 2e 2e 22 0a | WERE FO|UND...".|
|000015b0| 66 69 0a 65 78 69 74 20 | 24 53 54 41 54 55 53 0a |fi.exit |$STATUS.|
+--------+-------------------------+-------------------------+--------+--------+