[Bug 2105] New: ssh-copy-id leads to rm -f * (local vs. dash)

bugzilla-daemon at mindrot.org bugzilla-daemon at mindrot.org
Thu May 16 03:10:53 EST 2013


https://bugzilla.mindrot.org/show_bug.cgi?id=2105

            Bug ID: 2105
           Summary: ssh-copy-id leads to rm -f * (local vs. dash)
    Classification: Unclassified
           Product: Portable OpenSSH
           Version: 6.2p1
          Hardware: Other
               URL: http://bugs.debian.org/708419
                OS: Linux
            Status: NEW
          Severity: major
          Priority: P5
         Component: Miscellaneous
          Assignee: unassigned-bugs at mindrot.org
          Reporter: cjwatson at debian.org

Cyril Brulebois filed this bug in Debian:

"""
ssh-copy-id uses "local" while pretending to be POSIX compliant
(/bin/sh
as a shebang). Unfortunately, lack of error handling meands that this
isn't caught:
  local L_TMP_ID_FILE=$(mktemp ~/.ssh/ssh-copy-id_id.XXXXXXXXXX)
  trap "rm -f $L_TMP_ID_FILE*" EXIT TERM INT QUIT

mktemp succeeds but dash doesn't like local:
| $ dash
| $ local foo=bar
| dash: 1: local: not in a function
| $ echo $foo
|
| $

Which leads to:
  rm -f *

=> Nasty!

Traced back to 1:6.2p1-1 due to:
     - Update ssh-copy-id to Phil Hands' greatly revised version
       (closes: #99785, #322228, #620428; LP: #518883, #835901,
#1074798).

(Tagging "upstream" as it's also mention in upstream's ChangeLog.)

debdiffing both 6.1p1-4 and 1:6.2p1-1 confirms that the regression
was introduced in the latter (there was no "local" before).
"""

I think this may be a misdiagnosis; the "local" here is in a function. 
But, regardless of the exact cause, I wanted to make sure this was
forwarded to you in time for 6.2p2.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


More information about the openssh-bugs mailing list