zsh-workers
 help / color / mirror / code / Atom feed
From: Antoine Amarilli <a3nm@a3nm.net>
To: zsh-workers@zsh.org
Subject: Tab-completion problem through ssh when files start by dash (_remote_files:compadd:80: bad option: -@)
Date: Thu, 13 Apr 2017 19:47:17 +0200	[thread overview]
Message-ID: <20170413174717.4w6iatxztyutpbps@mu.a3nm.net> (raw)

[-- Attachment #1: Type: text/plain, Size: 1603 bytes --]

Hello everyone,

I would like to report what I think may be a bug in zsh. (I am not
subscribed directly, so please include me in any replies.) The bug
concerns tab-completion through ssh in directories containing a file
that starts with a dash.

The bug occurs when running zsh -f (using a fresh user on a Debian
testing amd64 machine, if that matters -- I call the machine "foo"). To
reproduce:

1. Enable autocomplete on machine foo by issuing:

  foo% autoload -Uz compinit
  foo% compinit

2. On a remote machine bar that can be reached by ssh with public-key
authentication from foo, in the home directory of user jdoe, create a
file whose name starts with a dash and occurs early in the alphabet, for
instance "-@":
  
  bar% cd ~jdoe
  bar% touch -- -@

3. Try to scp a file "blah" from foo to bar and use tab-completion
(indicated as <TAB>):

  foo% touch blah
  foo% scp blah jdoe@bar:<TAB>

When I do this, the result looks like this:

  foo% touch blah
  foo% scp blah jdoe@bar:<TAB>
  _remote_files:compadd:80: bad option: -@
  foo% scp test jdoe@bar:
  [ACTUAL CONTENTS OF ~jdoe ON bar]

So it looks to me like the internals of tab-completion are not properly
escaping the file names in this case, hence the warning. This is mostly
an annoyance, but maybe there could be some more problematic
implications (e.g., maybe a malicious jdoe on bar could create files
that would pass actual options to compadd and mess up more seriously
with the zsh session on foo).

I hope that this report is useful! :)

Best regards,

-- 
Antoine Amarilli


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

             reply	other threads:[~2017-04-13 17:55 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-13 17:47 Antoine Amarilli [this message]
2017-04-15  1:19 ` Daniel Shahaf
2017-04-15 15:59   ` Bart Schaefer
2017-04-16 19:08   ` Antoine Amarilli
2017-04-16 20:14     ` Daniel Shahaf

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=20170413174717.4w6iatxztyutpbps@mu.a3nm.net \
    --to=a3nm@a3nm.net \
    --cc=zsh-workers@zsh.org \
    /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).