Call for testing: openssh-9.8
Björn Lässig
b.laessig at pengutronix.de
Tue Jun 18 17:23:29 AEST 2024
Hi,
This is my first post here, I'm trying my best. I am admin and not a
developer but as such I am heavily dependent on openssh.
On Tue, 2024-06-18 at 12:46 +1000, Damien Miller wrote:
> OpenSSH 9.8p1 is almost ready for release, so we would appreciate testing
> on as many platforms and systems as possible. This is a bugfix release.
>
While all tests on my host were OK ("all tests passed"),
I get a number of compile warnings, e.g:
ssh-keygen.c: In function ‘do_gen_all_hostkeys’:
ssh-keygen.c:1133:55: warning: ‘%s’ directive output may be truncated writing up to 1024 bytes into a region of size 1023 [-Wformat-truncation=]
1133 | snprintf(comment, sizeof comment, "%s@%s", pw->pw_name,
| ^~
1134 | hostname);
| ~~~~~~~~
In function ‘snprintf’,
inlined from ‘do_gen_all_hostkeys’ at ssh-keygen.c:1133:3:
Is it worth it to fix this?
I asked a helpful friend (thanks Uwe) and he suggests something like:
diff --git a/ssh-keygen.c b/ssh-keygen.c
index 97c6d134a16f..69431bbc3084 100644
--- a/ssh-keygen.c
+++ b/ssh-keygen.c
@@ -3385,6 +3385,12 @@ main(int argc, char **argv)
pw = pwcopy(pw);
if (gethostname(hostname, sizeof(hostname)) == -1)
fatal("gethostname: %s", strerror(errno));
+ /*
+ * According to POSIX hostname might have been trunctated without
+ * returning an error and that in this case it's unspecified if hostname
+ * is terminated by a null byte.
+ */
+ hostname[sizeof(hostname) - 1] = '\0';
sk_provider = getenv("SSH_SK_PROVIDER");
@@ -3918,7 +3924,8 @@ main(int argc, char **argv)
strlcpy(comment, identity_comment, sizeof(comment));
} else {
/* Create default comment field for the passphrase. */
- snprintf(comment, sizeof comment, "%s@%s", pw->pw_name, hostname);
+ if (snprintf(comment, sizeof comment, "%s@%s", pw->pw_name, hostname) >= sizeof comment)
+ comment[sizeof comment - 1] = '\0';
}
/* Save the key with the given passphrase and comment. */
Have a nice day
Björn Lässig
More information about the openssh-unix-dev
mailing list