Hi Conrad,
   Thanks for your reply.

   I revert the basename.c and `< /dev/null` do the trick!
I'm also curious that will `caph_limit_stdio` break lots of program work with some shell scripts?

--
Iblis Lin

On 11/28/2016 12:55, Conrad Meyer wrote:
Hi Iblis,

I see no such problem running 'basename $HOME' in a normal shell environment:

$ basename $HOME
cmeyer

I suppose in your use, perhaps stdin is already closed?  I think this
is a limitation of caph_limit_stdio() in general.

Can you try instead:

function set_prompt {
    prompt="$(basename $HOME < /dev/null) >"
}

And see if it resolves the issue?

Thanks,
Conrad

On Sun, Nov 27, 2016 at 8:33 PM, iblis <ib...@hs.ntnu.edu.tw> wrote:
Hi,
Here is a minimal config of zsh prompt invoking `basename`:
```
└─[iblis@abeing]% cat /home/ib-test/.zshenv

function set_prompt {
    prompt="$(basename $HOME) >"
}

function zle-line-init zle-keymap-select {
        set_prompt
        zle reset-prompt
}

zle -N zle-line-init
zle -N zle-keymap-select

set_prompt
```

and launching zsh will get something like this:

```
└─[iblis@abeing]% sudo su ib-test

ib-test >basename: capsicum: Bad file descriptor

basename: capsicum: Bad file descriptor

```


To be honest, I have no idea about what casper/caspicum is. I just changed
the `basename.c` and zsh work again.

Index: basename.c
===================================================================
--- basename.c (revision 309213)
+++ basename.c (working copy)
@@ -65,7 +65,7 @@

setlocale(LC_ALL, "");

- if (caph_limit_stdio() < 0 || (cap_enter() < 0 && errno != ENOSYS))
+ if (cap_enter() < 0 && errno != ENOSYS)
err(1, "capsicum");

aflag = 0;


Any idea?

--
Iblis Lin
_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"


_______________________________________________
freebsd-current@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to