[New-bugs-announce] [issue26539] frozen executables should have an empty path

Daniel Shaulov report at bugs.python.org
Fri Mar 11 08:03:41 EST 2016

New submission from Daniel Shaulov:

A frozen python executable should have an empty path, so it doesn't accidentally run something it was not supposed to.

The attached file achieves that by setting Py_NoSiteFlag and Py_IsolatedFlag in Python/frozenmain.c

It also checks for Py_FrozenFlag in Python/sysmodule.c in makepathobject and just returns an empty list if it is set.

I originally tried doing it without changing sysmodule, by calling Py_SetPath as suggested in the comment in getpath.c, but calling Py_SetPath(L"") will leave me with a path that cointains a single empty string. There is no way to set an empty path with Py_SetPath.

Other options include allowing Py_SetPath to accept NULL and making sure that NULL results in an empty list, or changing the behavior of makepathobject so an empty string will result in an empty list instead of a list with an empty string.

components: Demos and Tools
files: freeze_path.patch
keywords: patch
messages: 261566
nosy: Daniel Shaulov, twouters
priority: normal
severity: normal
status: open
title: frozen executables should have an empty path
type: enhancement
versions: Python 3.5, Python 3.6
Added file: http://bugs.python.org/file42133/freeze_path.patch

Python tracker <report at bugs.python.org>

More information about the New-bugs-announce mailing list