Skip comment and blank lines when parsing known_hosts#634
Open
arpitjain099 wants to merge 1 commit into
Open
Conversation
ssh.ParseKnownHosts returns io.EOF for comment, blank, and whitespace-only lines, which are all valid in an OpenSSH known_hosts file. hostKey treated every non-nil error the same and logged a "Failed to parse known_hosts" error for each of those lines, which is noisy and misleading. Short-circuit on io.EOF so those lines are skipped quietly while genuinely malformed key entries (non-EOF errors) still log as before. Fixes anchore#530 Signed-off-by: Arpit Jain <arpitjain099@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #530.
hostKeyininternal/podman/ssh.goparsesknown_hostsline by line and loggedFailed to parse known_hostsfor every non-nil error fromssh.ParseKnownHosts. But that function returnsio.EOFfor comment lines, blank lines, and whitespace-only lines, all of which are valid in aknown_hostsfile, so a normal file with a couple of comments would spam an error log for each one. This is the spot @wagoodman pointed at in the issue.The fix short-circuits on
io.EOFso those lines are skipped quietly; genuinely malformed key entries come back as non-EOF errors and still log like before.Added
TestHostKey_commentsDoNotLogErrorswith atestdata/known_hosts_commentsfixture (a comment, a blank line, then a real host entry); it checks the real entry is found and nothing was logged. It fails before the change (two spurious logs) and passes after.go test ./internal/podman/andgo vet ./internal/podman/are clean.Thanks for taking a look.