Plan 9 from Bell Labs’s /usr/web/sources/contrib/uriel/changes/2005/1006/1

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


Okay images, better zip handling.
 [rsc] --rwxrwxr-x M 956468 rsc sys 1144 Oct  6 00:10 mail/lib/validateattachment
	/n/sourcesdump/2005/1006/plan9/mail/lib/validateattachment:1,4 - 
	/n/sourcesdump/2005/1007/plan9/mail/lib/validateattachment:1,5
	  #!/bin/rc
	+ rfork n
	  
	  # exit status matching:
	  #
	/n/sourcesdump/2005/1006/plan9/mail/lib/validateattachment:13,35 - 
	/n/sourcesdump/2005/1007/plan9/mail/lib/validateattachment:14,53
	  }
	  
	  echo validating >[1=2]
	+ 9fs other
	+ fn save {
	+ 	d=`{date -n}
	+ 	cp body /n/other/upas/tmp/$d.$1
	+ 	cp raw /n/other/upas/tmp/$d.$1.raw
	+ 	whatis x >/n/other/upas/tmp/$d.$1.file
	+ }
	  
	  upas/fs -f $1
	  cd /mail/fs/mbox/1
	  
	- x=`{file body}
	+ x=`{file body | sed s/body://}
	  x=$"x
	  switch($x){
	  case *Ascii* *text* *'c program'* *'rc executable'* 
	+ 	save accept
	  	exit accept
	  
	  case *'zip archive'*
	- 	if(unzip -tsf body | grep -si '      |\.(scr|exe|pif|bat|com)$'){
	+ 	# >[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 body >[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*
	/n/sourcesdump/2005/1006/plan9/mail/lib/validateattachment:38,43 - 
	/n/sourcesdump/2005/1007/plan9/mail/lib/validateattachment:56,62
	  	exit discard
	  }
	  
	+ save wrap
	  exit wrap
	  
	  


Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].