Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 02 Dec 2016 02:55:46 +0800
From:      Iblis Lin <iblis@hs.ntnu.edu.tw>
To:        cem@freebsd.org
Cc:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: r308432: Capsicumized `basename` make zsh prompt broken
Message-ID:  <af2d2b23fa0407f8f4daf8140c113657@mail.hs.ntnu.edu.tw>
In-Reply-To: <CAG6CVpVkUkU2=-=QQpH9-AKaXQEza5hifVUQtK%2B1%2B5EKHEguFg@mail.gmail.com>
References:  <5874fe09-4261-5616-9c0a-a71581c4d548@hs.ntnu.edu.tw> <CAG6CVpUbRq-%2BY8akXRsKqt6NvWuoPJKnfCJ2dzK1cVRHxGc0Sw@mail.gmail.com> <e112d5d1-a64e-9647-8b1a-96461bf84d6f@hs.ntnu.edu.tw> <CAG6CVpWxqnWNcehPWo8N18ZwffDfptL%2BtnMBg9KR9mre4DCjtQ@mail.gmail.com> <CAG6CVpVkUkU2=-=QQpH9-AKaXQEza5hifVUQtK%2B1%2B5EKHEguFg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Tnx a lot!

The new `basename` works fine now.

---

Iblis Lin

Conrad Meyer 於 2016-12-02 01:30 寫到:

> Hello Iblis,
> 
> Please try reinstalling libcapsicum after r309366, rebuilding
> basename, and then removing the stdout kludge from your shell script.
> Let me know if there's still a problem!
> 
> Thanks,
> Conrad
> 
> On Sun, Nov 27, 2016 at 11:08 PM, Conrad Meyer <cem@freebsd.org> wrote: 
> Hi Iblis,
> 
> Yes, I think caph_limit_stdio will break many similar programs in
> similar use.  I think we'll need to change that behavior.  Something
> like this:
> 
> https://reviews.freebsd.org/D8657
> 
> Best,
> Conrad
> 
> On Sun, Nov 27, 2016 at 10:40 PM, iblis <iblis@hs.ntnu.edu.tw> wrote: 
> 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 <iblis@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-unsubscribe@freebsd.org"

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?af2d2b23fa0407f8f4daf8140c113657>