From 3e8bef013d781f3b3f549c5b4b74c497f8b71394 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 10 Jun 2013 23:54:28 -0400 Subject: display any illegal character found in ssh comment --- Assistant/Ssh.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'Assistant') diff --git a/Assistant/Ssh.hs b/Assistant/Ssh.hs index 7875c4c4c..182e85377 100644 --- a/Assistant/Ssh.hs +++ b/Assistant/Ssh.hs @@ -82,9 +82,10 @@ validateSshPubKey pubkey = either error return $ check $ words pubkey where (ssh, keytype) = separate (== '-') prefix - checkcomment comment - | all (\c -> isAlphaNum c || c == '@' || c == '-' || c == '_' || c == '.') comment = ok - | otherwise = err "bad comment in ssh public key" + checkcomment comment = case filter (not . safeincomment) comment of + [] -> ok + badstuff -> err $ "bad comment in ssh public key (contains: \"" ++ badstuff ++ "\")" + safeincomment c = isAlphaNum c || c == '@' || c == '-' || c == '_' || c == '.' addAuthorizedKeys :: Bool -> FilePath -> SshPubKey -> IO Bool addAuthorizedKeys rsynconly dir pubkey = boolSystem "sh" -- cgit v1.2.3