Hi,

I have a question about using unnamed pipes with procfs.

Suppose a chrooted environment with proc mounted as procfs. I am trying to use bash process substitution feature and get this:

$ cat <(echo hello)
cat: /dev/fd/63: No such file or directory

While on the normal system:
$ cat <(echo hello)
hello

As I understand, the problem is that when fuse making getattr on file '/dev/fd/63' - it determines that it is symlink. The next step is readlink, which gives something like that: /25977/fd/63 => pipe:[3087676]. And at the final step getattr on file '/25977/fd/pipe:[3087676]' gives no such file or directory.

Actually I encouter this issue while working on similar fuse proc (for jail environments). Then I find procfs, tried it out and get the same failure.

I've also tried to change logic of getattr in the next way. First make normal stat of file. If it is not S_ISFIFO - make lstat. In that way the process hangs forever on open syscall:
$ strace cat <(echo hello)
...
open("/dev/fd/63", O_RDONLY


Is there any workaround for this problem?

--
Timofey Kirillov

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Lxc-users mailing list
Lxc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-users

Reply via email to