On Mon, Nov 28, 2016 at 02:05:49AM -0500, Allan Jude wrote: > 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 <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" > > > > IIRC, bapt@ specifically mentioned this case in the review for > caph_limit_stdio() or one of the reviews that lead to the creation of > the helpers.
I mention this is the review of the cap_helpers themselves. I still think caph_limit_stdio should grow a flag for testing that. I figured out the issue based on one of the conversion to capsicum by Conrad on I don't remember which tool. Bapt
signature.asc
Description: PGP signature