Nested Scopes Question (exec)
Rainer Deyke
root at rainerdeyke.com
Sun Jun 24 21:05:03 EDT 2001
More information about the Python-list mailing list
Sun Jun 24 21:05:03 EDT 2001
- Previous message (by thread): Nested Scopes Question (exec)
- Next message (by thread): Nested Scopes Question (exec)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Rainer Deyke" <root at rainerdeyke.com> wrote in message news:DWvZ6.362805$oc7.43089434 at news2.rdc2.tx.home.com... > The wording here should probably be changed to "may or may not". Otherwise > people might start to rely on the fact that dictionary usually doesn't > affect the local variables and do stuff like this: > > def f(x): > d = locals() > d['x'] += 5 > exec 'print x' in d Oops, bad example. How about this: def f(x): d = locals() d['x'] += 5 assert d['x'] != x I know, it's totally contrived. More realistically: def run_arbitrary_code(code): try: exec code in locals() except: print 'Exception raised by arbitrary code: "%s"' % code run_arbitrary_code('del code;raise SyntaxError') If modifying the dictionary returned from 'locals' changes the local variables, then the function 'run_arbitrary_code' can be forced to throw an exception by malicious code. -- Rainer Deyke (root at rainerdeyke.com) Shareware computer games - http://rainerdeyke.com "In ihren Reihen zu stehen heisst unter Feinden zu kaempfen" - Abigor
- Previous message (by thread): Nested Scopes Question (exec)
- Next message (by thread): Nested Scopes Question (exec)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list