This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients vstinner
Date 2010-04-18.00:10:32
SpamBayes Score 6.5320813e-07
Marked as misclassified No
Message-id <1271549434.81.0.619748326822.issue8391@psf.upfronthosting.co.za>
In-reply-to
Content
Current code of execve() has a bug: it uses the length of the environment variable value in *characters* and not in *bytes* to allocate the "p" buffer. I remember that someone wrote a comment somewhere about that... The result is that the environment variable value is truncated by 1 byte.

Example (copy of http://dpaste.com/184803/):
-----------
$ cat test.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import os

env = {"VAR": "ćd"}
os.execve("test.sh", [], env)
$ cat test.sh
#!/bin/bash

declare -p VAR
$ python2.6 test.py
declare -x VAR="ćd"
$ python3.1 test.py
declare -x VAR="ć"
-----------
History
Date User Action Args
2010-04-18 00:10:35vstinnersetrecipients: + vstinner
2010-04-18 00:10:34vstinnersetmessageid: <1271549434.81.0.619748326822.issue8391@psf.upfronthosting.co.za>
2010-04-18 00:10:33vstinnerlinkissue8391 messages
2010-04-18 00:10:32vstinnercreate