
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Donald Bruce Stewart wrote:
I've listed the mechanisms we use, and exploits that have been thought of, or discovered, over the years, on the page:
http://haskell.org/haskellwiki/Safely_running_untrusted_Haskell_code
The exception handling behavior is somewhat odd, I don't even understand it fully. Here's a lambdabot session... why is the behavior of the "iter" versions different from the explicitly iterated "error"? isaacd > error "hi" lambdabot Exception: hi isaacd > error (error "hi") lambdabot Exception: hi isaacd > error ('l':(error "hi")) lambdabot Exception isaacd > fix error lambdabot Exception: <<loop>> isaacd > fix (error . ('a':)) lambdabot Exception isaacd > fix (error . (replicate 5000 'a'++)) [ long lines clipped by me: ] lambdabot Exception: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[...] lambdabot aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[...] lambdabot aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[...] lambdabot aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa[...] lambdabot aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa isaacd > error (error (error "hi")) :: String lambdabot Exception: hi isaacd > error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error . error.error.error $ "hi" lambdabot Exception: hi isaacd > let iter 0 _ = id; iter n f = f . iter (n - 1) f in iter 0 error "hi" lambdabot "hi" isaacd > let iter 0 _ = id; iter n f = f . iter (n - 1) f in iter 1 error "hi" lambdabot Exception: hi isaacd > let iter 0 _ = id; iter n f = f . iter (n - 1) f in iter 2 error "hi" lambdabot Exception isaacd > let iter 0 _ = id; iter n f = f . iter (n - 1) f in iter 1001 error "hi" lambdabot Exception isaacd > let iter 0 _ = id; iter n f = f . iter (n - 1) f in iter 5 ('L':) "hi" lambdabot "LLLLLhi" Isaac -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGWWo/HgcxvIWYTTURAhYdAJsExQDI9191Q1y9u66H+gpWVlJv2ACfVEhZ IQWCLIgqWksbEcZ+g7gsjR0= =d4Lk -----END PGP SIGNATURE-----