From: Sven Wischnowsky <wischnow@informatik.hu-berlin.de>
To: zsh-workers@sunsite.auc.dk
Subject: Re: Permissions directories
Date: Thu, 22 Jun 2000 13:07:09 +0200 (MET DST) [thread overview]
Message-ID: <200006221107.NAA04134@beta.informatik.hu-berlin.de> (raw)
In-Reply-To: "Bart Schaefer"'s message of Thu, 22 Jun 2000 09:34:36 +0000
Bart Schaefer wrote:
> ...
>
> This is not so much a problem since compinit is also checking ownership
> of the files in those directories. I think it's got the test wrong for
> the .zwc files, though -- e.g. if the parent of a directory in $fpath
> is writable, I believe under the current tests I could still create a
> trojan .zwc file there that would be used in place of the directory of
> the same basename.
Digest files are not used automatically, they have to be named in
$fpath. The patch makes zwc be not excluded for testing purposes.
> While I'm on the subject, though, I've been finding a number of problems
> with the new compinit. For one thing, the test
>
> (( $+functions[$_i_name] + $_i_wfiles[(I)$_i_file] )) && continue
>
> is a nice idea, but it doesn't work in practice -- the test can't be for
> whether the *function* is already defined, it has to be a test for whether
> it has already been defined *by compinit*. I don't want the test to fail
> if *I've* already explicitly autoloaded a name, I only want it not to
> parse the #compdef lines from files of the same name out of two different
> directories. I think we need a local assoc or array for this, not the
> $functions parameter.
Right, the patch does that, too.
> The other problem is that when I answer "y" to the question "there are
> insecure directories -- proceed?" I expected that to mean that it would
> USE those directories, not ignore them. If it's going to skip those
> directories anyway, why bother to ask the question? Giving me a choice
> between no directories and half of them is no choice at all; it just
> leaves me with a partly-working completion system, which is baffling.
Oh. Right, too. Or should we give that as a choice at the prompt
(don't use/use/ignore)?
Bye
Sven
Index: Completion/Core/compinit
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Core/compinit,v
retrieving revision 1.5
diff -u -r1.5 compinit
--- Completion/Core/compinit 2000/06/20 07:15:39 1.5
+++ Completion/Core/compinit 2000/06/22 11:06:37
@@ -348,7 +348,7 @@
typeset _i_q
_i_wdirs=( ${^fpath}(Nf:g+w:,f:o+w:,^u0u${EUID}) )
- _i_wfiles=( ${^~fpath:/.}/^([^_]*|*~|*.zwc)(N^u0u${EUID}) )
+ _i_wfiles=( ${^~fpath:/.}/^([^_]*|*~)(N^u0u${EUID}) )
case "${#_i_wdirs}:${#_i_wfiles}" in
0:0) _i_q= ;;
@@ -358,16 +358,20 @@
esac
if [[ -n "$_i_q" ]]; then
- if [[ "$_i_fail" = ask ]] &&
- ! read -q "?There are insecure $_i_q, continue [yn]? "; then
- unfunction compinit compdef
- unset _comp_dumpfile _comp_secure compprefuncs comppostfuncs \
- _comps _patcomps _postpatcomps _compautos _lastcomp
-
- return 1
+ if [[ "$_i_fail" = ask ]]; then
+ if ! read -q "?There are insecure $_i_q, continue [yn]? "; then
+ unfunction compinit compdef
+ unset _comp_dumpfile _comp_secure compprefuncs comppostfuncs \
+ _comps _patcomps _postpatcomps _compautos _lastcomp
+
+ return 1
+ fi
+ _i_wfiles=()
+ _i_wdirs=()
+ else
+ (( $#_i_wfiles )) && _i_files=( "${(@)_i_files:#(${(j:|:)_i_wfiles})}" )
+ (( $#_i_wdirs )) && _i_files=( "${(@)_i_files:#(${(j:|:)_i_wdirs})/*}" )
fi
- (( $#_i_wfiles )) && _i_files=( "${(@)_i_files:#(${(j:|:)_i_wfiles})}" )
- (( $#_i_wdirs )) && _i_files=( "${(@)_i_files:#(${(j:|:)_i_wdirs})/*}" )
fi
_comp_secure=yes
fi
@@ -393,12 +397,15 @@
fi
fi
if [[ -z "$_i_done" ]]; then
+ typeset -A _i_test
+
for _i_dir in $fpath; do
[[ $_i_dir = . ]] && continue
(( $_i_wdirs[(I)$_i_dir] )) && continue
for _i_file in $_i_dir/^([^_]*|*~|*.zwc)(N); do
_i_name="${_i_file:t}"
- (( $+functions[$_i_name] + $_i_wfiles[(I)$_i_file] )) && continue
+ (( $+_i_test[$_i_name] + $_i_wfiles[(I)$_i_file] )) && continue
+ _i_test[$_i_name]=yes
read -rA _i_line < $_i_file
_i_tag=$_i_line[1]
shift _i_line
--
Sven Wischnowsky wischnow@informatik.hu-berlin.de
next reply other threads:[~2000-06-22 11:07 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-06-22 11:07 Sven Wischnowsky [this message]
2000-06-22 16:23 ` Bart Schaefer
-- strict thread matches above, loose matches on Subject: below --
2000-06-22 1:04 Chmouel Boudjnah
2000-06-22 9:34 ` Bart Schaefer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200006221107.NAA04134@beta.informatik.hu-berlin.de \
--to=wischnow@informatik.hu-berlin.de \
--cc=zsh-workers@sunsite.auc.dk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).