upstream commit

make sure we don't pass a NULL string to vfprintf
(triggered by the principals-command regress test); ok bluhm

Upstream-ID: eb49854f274ab37a0b57056a6af379a0b7111990
diff --git a/auth2-pubkey.c b/auth2-pubkey.c
index 271dbaf..5794f1f 100644
--- a/auth2-pubkey.c
+++ b/auth2-pubkey.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: auth2-pubkey.c,v 1.66 2017/05/31 09:15:42 deraadt Exp $ */
+/* $OpenBSD: auth2-pubkey.c,v 1.67 2017/05/31 10:54:00 markus Exp $ */
 /*
  * Copyright (c) 2000 Markus Friedl.  All rights reserved.
  *
@@ -587,7 +587,7 @@
 }
 
 static int
-process_principals(FILE *f, char *file, struct passwd *pw,
+process_principals(FILE *f, const char *file, struct passwd *pw,
     const struct sshkey_cert *cert)
 {
 	char line[SSH_MAX_PUBKEY_BYTES], *cp, *ep, *line_opts;
@@ -625,8 +625,7 @@
 		for (i = 0; i < cert->nprincipals; i++) {
 			if (strcmp(cp, cert->principals[i]) == 0) {
 				debug3("%s:%lu: matched principal \"%.100s\"",
-				    file == NULL ? "(command)" : file,
-				    linenum, cert->principals[i]);
+				    file, linenum, cert->principals[i]);
 				if (auth_parse_options(pw, line_opts,
 				    file, linenum) != 1)
 					continue;
@@ -757,7 +756,7 @@
 	uid_swapped = 1;
 	temporarily_use_uid(pw);
 
-	ok = process_principals(f, NULL, pw, cert);
+	ok = process_principals(f, "(command)", pw, cert);
 
 	fclose(f);
 	f = NULL;