You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The idea of the "shell=true" argument is that the entire command line is
invoked via the shell. However, when StraceRunner is used, the independent
command-line arguments are merely appended to the strace line, converted to a
command-line. This means that a command like "touch foo.txt; touch bar.txt"
will result in strace invocation "strace -fo /tmp/tmp6VNsRF -e
trace=open,stat,stat64,lstat,lstat64,execve,exit_group,chdir,mkdir,rename,clone,
vfork,fork,symlink,creat touch foo.txt ; touch other.txt", which will mean that
"bar.txt" does not get marked as an output of the command: "touch foo.txt ;
touch bar.txt": { "foo.txt": "output-d41d8cd98f00b204e9800998ecf8427e" }
The real fix is to instead translate such a line to "strace -fo /tmp/tmp6VNsRF
-e
trace=open,stat,stat64,lstat,lstat64,execve,exit_group,chdir,mkdir,rename,clone,
vfork,fork,symlink,creat /bin/sh -c 'touch foo.txt ; touch other.txt'", and not
pass the shell=True to the underlying subprocess.Popen.
Original issue reported on code.google.com by nuutti.k...@gmail.com on 9 Jul 2013 at 11:58
The text was updated successfully, but these errors were encountered:
Sorry for very slow response,
I met same issue, and wrote a patch. It modifies structure of argument and
shell flag before calling strace.
I would be happy if this is still useful.
Takaaki Aoki
Original comment by Aoki.Takaaki on 7 Aug 2014 at 7:06
Original issue reported on code.google.com by
nuutti.k...@gmail.com
on 9 Jul 2013 at 11:58The text was updated successfully, but these errors were encountered: