Pablo Galindo Salgado <pablog...@gmail.com> added the comment:

Serhiy, I am checking and the only temporary Python object (the result of 
encoding/decoding) that is passed to C library function that I can find is in:


                if (!PyArg_ParseTuple(file_action, "OiO&ik"
                         ";A open file_action tuple must have 5 elements",
                         &tag_obj, &fd, PyUnicode_FSConverter, &path,
                         &oflag, &mode))
                 {
                     goto fail;
                 }
                 errno = posix_spawn_file_actions_addopen(file_actionsp,
                         fd, PyBytes_AS_STRING(path), oflag, (mode_t)mode);
                  Py_DECREF(path);  /* addopen copied it. */


And according to the manpage of posix_spawn_file_actions_addopen: "The string 
described by path shall be copied by the posix_spawn_file_actions_addopen() 
function.".
The object created by `PyArg_ParseTuple` (path) is only freed after calling 
`posix_spawn_file_actions_addopen` and in that function the contents are copied 
inside 
`file_actionsp`. So it should not be a problem.

In case there is still a problem, could you elaborate more about what object is 
being freed and how is being passed to a C library function?

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue33630>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to