[Bug 3529] `add_host_to_hostfile` should take into consideration that the known_hosts file isn't terminated with a newline character.

bugzilla-daemon at mindrot.org bugzilla-daemon at mindrot.org
Mon Feb 6 21:44:55 AEDT 2023


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

--- Comment #5 from Mike <git+openssh at limpsquid.nl> ---
(In reply to Darren Tucker from comment #2)
> Created attachment 3656 [details]
> Check for newline at end of known_hosts and add it missing.  Close
> FILE * if write fails.
> 
> Please try this one instead.

I've tested it and for a file which already was terminated with a
new-line it still added an extra new-line.

I've changed the open mode to `a+` since that should be used for both
appending and reading the file.

I also had to change the initial fseek to `fseek(f, -1, SEEK_END)`. The
docs (https://www.man7.org/linux/man-pages/man3/fopen.3.html) mention
the following:

> Open for reading and appending (writing at end of file).
> The file is created if it does not exist.  Output is
> always appended to the end of the file.  POSIX is silent
> on what the initial read position is when using this mode.
> For glibc, the initial file position for reading is at the
> beginning of the file, but for Android/BSD/MacOS, the
> initial file position for reading is at the end of the
> file.

The attachement was added in my previous comment.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.
You are watching someone on the CC list of the bug.


More information about the openssh-bugs mailing list