6977206 fix for 6735446 dumps core if argv[0] == NULL
authorRoger A. Faulkner <Roger.Faulkner@Oracle.COM>
Mon, 16 Aug 2010 18:05:48 -0700
changeset 13145 83213fd85699
parent 13144 9615cdbf7b70
child 13146 8315ff49e22e
6977206 fix for 6735446 dumps core if argv[0] == NULL
usr/src/lib/libc/port/gen/err.c
--- a/usr/src/lib/libc/port/gen/err.c	Mon Aug 16 17:01:32 2010 -0700
+++ b/usr/src/lib/libc/port/gen/err.c	Mon Aug 16 18:05:48 2010 -0700
@@ -73,10 +73,11 @@
 	Dl_argsinfo_t args;
 	const char *argv0;
 
-	if (dlinfo(RTLD_SELF, RTLD_DI_ARGSINFO, &args) < 0)
+	if (dlinfo(RTLD_SELF, RTLD_DI_ARGSINFO, &args) < 0 ||
+	    args.dla_argc <= 0 ||
+	    (argv0 = args.dla_argv[0]) == NULL)
 		argv0 = "UNKNOWN";
-	else
-		argv0 = args.dla_argv[0];
+
 	setprogname(argv0);
 }