On 2016-11-27 23: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 <iblis_at_hs.ntnu.edu.tw> wrote: >> Hi, >> Here is a minimal config of zsh prompt invoking `basename`: >> ``` >> └─[iblis_at_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_at_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) >> _at__at_ -65,7 +65,7 _at__at_ >> >> 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_at_freebsd.org mailing list >> https://lists.freebsd.org/mailman/listinfo/freebsd-current >> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org" > _______________________________________________ > freebsd-current_at_freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org" > IIRC, bapt_at_ specifically mentioned this case in the review for caph_limit_stdio() or one of the reviews that lead to the creation of the helpers. -- Allan Jude
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:09 UTC