[Haskell-cafe] More on the random idea
Isaac Dupree
isaacdupree at charter.net
Sun May 27 07:23:44 EDT 2007
-----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-----
More information about the Haskell-Cafe
mailing list