@@ -615,8 +615,8 @@ are always available. They are listed here in alphabetical order.
615615 reference to the dictionary of the built-in module :mod: `builtins ` is
616616 inserted under that key before *source * is parsed.
617617 Overriding ``__builtins__ `` can be used to restrict or change the available
618- names, but it is **not ** a security mechanism, the executed code can
619- still access builtins.
618+ names, but this is **not ** a security mechanism: the executed code can
619+ still access all builtins.
620620 If the *locals * mapping is omitted it defaults to the
621621 *globals * dictionary. If both mappings are omitted, the source is
622622 executed with the *globals * and *locals * in the environment where
@@ -672,7 +672,7 @@ are always available. They are listed here in alphabetical order.
672672 .. warning ::
673673
674674 This function executes arbitrary code. Calling it with
675- user-supplied input will lead to security vulnerabilities.
675+ untrusted user-supplied input will lead to security vulnerabilities.
676676
677677 This function supports dynamic execution of Python code. *source * must be
678678 either a string or a code object. If it is a string, the string is parsed as
@@ -705,8 +705,8 @@ are always available. They are listed here in alphabetical order.
705705 ``__builtins__ ``, a reference to the dictionary of the built-in module
706706 :mod: `builtins ` is inserted under that key.
707707 Overriding ``__builtins__ `` can be used to restrict or change the available
708- names, but it is **not ** a security mechanism, the executed code can
709- still access builtins.
708+ names, but is **not ** a security mechanism: the executed code can
709+ still access all builtins.
710710
711711 The *closure * argument specifies a closure--a tuple of cellvars.
712712 It's only valid when the *object * is a code object containing
0 commit comments