diff options
author | Damien Miller <djm@mindrot.org> | 2013-05-16 03:10:17 +0200 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2013-05-16 03:10:17 +0200 |
commit | 6aa3eacc5e5f39702b6dd5b27970d9fd97bc2383 (patch) | |
tree | 6395bdbf691b681dbbd4e952d72a523d5c230283 /contrib/ssh-copy-id | |
parent | - (dtucker) [configure.ac] Add -Werror to the -Qunused-arguments test so (diff) | |
download | openssh-6aa3eacc5e5f39702b6dd5b27970d9fd97bc2383.tar.xz openssh-6aa3eacc5e5f39702b6dd5b27970d9fd97bc2383.zip |
- (djm) [contrib/ssh-copy-id] Fix bug that could cause "rm *" to be
executed if mktemp failed; bz#2105 ok dtucker@
Diffstat (limited to 'contrib/ssh-copy-id')
-rw-r--r-- | contrib/ssh-copy-id | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/contrib/ssh-copy-id b/contrib/ssh-copy-id index af18a1929..9f2817b6b 100644 --- a/contrib/ssh-copy-id +++ b/contrib/ssh-copy-id @@ -165,6 +165,9 @@ done eval set -- "$SAVEARGS" +if [ $# == 0 ] ; then + usage +fi if [ $# != 1 ] ; then printf '%s: ERROR: Too many arguments. Expecting a target hostname, got: %s\n\n' "$0" "$SAVEARGS" >&2 usage @@ -196,7 +199,11 @@ populate_new_ids() { umask 0177 local L_TMP_ID_FILE=$(mktemp ~/.ssh/ssh-copy-id_id.XXXXXXXXXX) - trap "rm -f $L_TMP_ID_FILE*" EXIT TERM INT QUIT + if test $? -ne 0 || test "x$L_TMP_ID_FILE" = "x" ; then + echo "mktemp failed" 1>&2 + exit 1 + fi + trap "rm -f $L_TMP_ID_FILE ${L_TMP_ID_FILE}.pub" EXIT TERM INT QUIT printf '%s: INFO: attempting to log in with the new key(s), to filter out any that are already installed\n' "$0" >&2 NEW_IDS=$( eval $GET_ID | { |