Hi,

it's much worse. If Untrusted doesn't have Do, it can use If,
Else, Use, While,...lots of other possibilities.

Instead of load Untrusted can use:

ld: get to word! "load"

Moreover, Replace is not enough to clear Untrusted.

The moved System is a higher obstacle.

>
>
>        Clever!  Okay, so untrusted isn't allowed to use load
>        bind or do.
>
> REBOL []
>
> if error? err: try [
>     do func [/system/rebol/query] compose/deep [
>         do [(script: read %untrusted.r
>             foreach nope ["load" "bind" "do"][
>                 replace/all script nope "none"
>             ]
>             load script
>         )]
>     ]
> ][print "Error with untrusted" print mold disarm err]
>
> check query/clear system/words
>
>   --------------------------------------------
>
> Of course, you can always move the system out of the way
> temporarily:
>
> moved: :system
> unset [system rebol]
> if error? try [do %untrusted.r][dump-it]
> system: :moved
> check query/clear system/words
>
>
>                   -jeff
>
> > how about:
> >
> > do load {query/clear system/words}
> >
> > ?
>
>

Reply via email to