summaryrefslogtreecommitdiffstats
path: root/Demo
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2010-08-01 18:56:30 (GMT)
committerGeorg Brandl <georg@python.org>2010-08-01 18:56:30 (GMT)
commitcea7e55998d9e3c24c74fa55e59b252ac592d95e (patch)
treeb4b6ea88f89ad3161fffa8aa98e4f9ece4f42936 /Demo
parentafef78f832d0f2eab287f4ce889baf4d68a4fc63 (diff)
downloadcpython-cea7e55998d9e3c24c74fa55e59b252ac592d95e.zip
cpython-cea7e55998d9e3c24c74fa55e59b252ac592d95e.tar.gz
cpython-cea7e55998d9e3c24c74fa55e59b252ac592d95e.tar.bz2
Merged revisions 83393,83396,83398,83404-83405,83408 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k ........ r83393 | georg.brandl | 2010-08-01 10:35:29 +0200 (So, 01 Aug 2010) | 1 line #1690103: fix initial namespace for code run with trace.main(). ........ r83396 | georg.brandl | 2010-08-01 10:52:32 +0200 (So, 01 Aug 2010) | 1 line #4810: document "--" option separator in timeit help. ........ r83398 | georg.brandl | 2010-08-01 11:06:34 +0200 (So, 01 Aug 2010) | 1 line #8826: the "expires" attribute value is a date string with spaces, but apparently not all user-agents put it in quotes. Handle that as a special case. ........ r83404 | georg.brandl | 2010-08-01 16:25:22 +0200 (So, 01 Aug 2010) | 1 line #6439: fix argument type for PySys_SetArgvEx() and Py_SetProgramName() in Demo/embed code. ........ r83405 | georg.brandl | 2010-08-01 16:38:17 +0200 (So, 01 Aug 2010) | 1 line #4943: do not try to include drive letters (and colons) when looking for a probably module name. ........ r83408 | georg.brandl | 2010-08-01 17:30:56 +0200 (So, 01 Aug 2010) | 1 line #5551: symbolic links never can be mount points. Fixes the fix for #1713. ........
Diffstat (limited to 'Demo')
-rw-r--r--Demo/embed/Makefile2
-rw-r--r--Demo/embed/demo.c13
-rw-r--r--Demo/embed/loop.c2
3 files changed, 13 insertions, 4 deletions
diff --git a/Demo/embed/Makefile b/Demo/embed/Makefile
index 857b5e5..711b95b 100644
--- a/Demo/embed/Makefile
+++ b/Demo/embed/Makefile
@@ -22,7 +22,7 @@ CPPFLAGS= $(INCLUDES)
LIBPYTHON= $(blddir)/libpython$(VERSION).a
# XXX edit LIBS (in particular) to match $(blddir)/Modules/Makefile
-LIBS= -lnsl -ldl -lreadline -ltermcap -lieee -lpthread -lutil
+LIBS= -lnsl -ldl -lreadline -lieee -lpthread -lutil
LDFLAGS= -Xlinker -export-dynamic
SYSLIBS= -lm
MODLIBS=
diff --git a/Demo/embed/demo.c b/Demo/embed/demo.c
index 22bfaff..99d39ca 100644
--- a/Demo/embed/demo.c
+++ b/Demo/embed/demo.c
@@ -22,8 +22,17 @@ main(int argc, char **argv)
/* Define sys.argv. It is up to the application if you
want this; you can also let it undefined (since the Python
code is generally not a main program it has no business
- touching sys.argv...) */
- PySys_SetArgv(2, args);
+ touching sys.argv...)
+
+ If the third argument is true, sys.path is modified to include
+ either the directory containing the script named by argv[0], or
+ the current working directory. This can be risky; if you run
+ an application embedding Python in a directory controlled by
+ someone else, attackers could put a Trojan-horse module in the
+ directory (say, a file named os.py) that your application would
+ then import and run.
+ */
+ PySys_SetArgvEx(2, args, 0);
/* Do some application specific code */
printf("Hello, brave new world\n\n");
diff --git a/Demo/embed/loop.c b/Demo/embed/loop.c
index 2f7fe62..4a341fd 100644
--- a/Demo/embed/loop.c
+++ b/Demo/embed/loop.c
@@ -19,7 +19,7 @@ main(int argc, char **argv)
count = atoi(argv[2]);
}
- Py_SetProgramName(argv[0]);
+ Py_SetProgramName(L"loop");
/* uncomment this if you don't want to load site.py */
/* Py_NoSiteFlag = 1; */