scepclient: Don't use a block-scope buffer for the default DN

The correct behavior will depend on the compiler.

Fixes #2843.
This commit is contained in:
Tobias Brunner
2018-12-03 11:54:05 +01:00
parent 686a1b971d
commit 631abb6810
+5 -4
View File
@@ -455,6 +455,7 @@ int main(int argc, char **argv)
/* distinguished name for requested certificate, ASCII format */ /* distinguished name for requested certificate, ASCII format */
char *distinguishedName = NULL; char *distinguishedName = NULL;
char default_distinguished_name[BUF_LEN];
/* challenge password */ /* challenge password */
char challenge_password_buffer[MAX_PASSWORD_LENGTH]; char challenge_password_buffer[MAX_PASSWORD_LENGTH];
@@ -1105,16 +1106,16 @@ int main(int argc, char **argv)
{ {
if (distinguishedName == NULL) if (distinguishedName == NULL)
{ {
char buf[BUF_LEN]; int n = sprintf(default_distinguished_name, DEFAULT_DN);
int n = sprintf(buf, DEFAULT_DN);
/* set the common name to the hostname */ /* set the common name to the hostname */
if (gethostname(buf + n, BUF_LEN - n) || strlen(buf) == n) if (gethostname(default_distinguished_name + n, BUF_LEN - n) ||
strlen(default_distinguished_name) == n)
{ {
exit_scepclient("no hostname defined, use " exit_scepclient("no hostname defined, use "
"--dn <distinguished name> option"); "--dn <distinguished name> option");
} }
distinguishedName = buf; distinguishedName = default_distinguished_name;
} }
DBG2(DBG_APP, "dn: '%s'", distinguishedName); DBG2(DBG_APP, "dn: '%s'", distinguishedName);