Message103459
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="ć"
----------- |
|
Date |
User |
Action |
Args |
2010-04-18 00:10:35 | vstinner | set | recipients:
+ vstinner |
2010-04-18 00:10:34 | vstinner | set | messageid: <1271549434.81.0.619748326822.issue8391@psf.upfronthosting.co.za> |
2010-04-18 00:10:33 | vstinner | link | issue8391 messages |
2010-04-18 00:10:32 | vstinner | create | |
|