83 lines · 1.7 KB · Text
RawDownload
#!/usr/local/plan9/bin/rcrfork n . 9.rc # exit status matching:##	$discard - is really bad, refuse the message #	$accept - is really good, leave attachment alone#	anything else - rewrite attachment to have .suspect extension#  # magic exit statuses known to vfaccept=10discard=13 wrap=123	# anything but 10, 13 if(! ~ $#* 1){	echo usage: validateattachment mboxfile >[1=2]	exit usage} # some idiot virus is sending around attachments marked as .zip# that are completely bogus and just say %TS_ZIP_ATTACH%# as the base64 encoding of the zip file.  gmail rejects all zip# attachments when we forward them, so nip this one here.if(grep -s '^%TS_ZIP_ATTACH%$' $1 && ~ `{wc -l <$1} 1 2 3 4 5 6 7 8 9 10){	echo bogus zip file!	exit $discard} upas/unvf < $1 >$1.unvffile=$1.unvffn sigexit { rm $file } fn save {#	d=`{date -n}#	cp $file /n/other/upas/tmp/$d.$1#	cp raw /n/other/upas/tmp/$d.$1.raw#	whatis x >/n/other/upas/tmp/$d.$1.file} x=`{file <$file | sed s/stdin://}x=$"xswitch($x){case *Ascii* *text* *'c program'* *'rc executable'* 	save accept	exit $accept case *'zip archive'*		# >[2=1] because sometimes we get zip files we can't parse	# but the errors look like	# unzip: reading data for philw.doc.scr failed: ...	# so we can still catch these.	if(! unzip -tsf $file >[2=1] >/dev/null){		echo corrupt zip file!		exit $discard	}	if(unzip -tsf $file >[2=1] | grep -si '      |\.(scr|exe|pif|bat|com)$'){		echo executables inside zip file!		exit $discard	} case jpeg 'PNG image' bmp 'GIF image' *'plan 9 image'	save accept	exit $accept case *Microsoft* *Office*	save wrap	exit $wrap case *MSDOS*	# no executables	echo $x	exit $discard} save wrapexit $wrap