summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/src/lib/libc/port/gen/err.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/usr/src/lib/libc/port/gen/err.c b/usr/src/lib/libc/port/gen/err.c
index 7f13435b97..7af600f48f 100644
--- a/usr/src/lib/libc/port/gen/err.c
+++ b/usr/src/lib/libc/port/gen/err.c
@@ -54,16 +54,20 @@ static const char *progname;
static void
warncore(FILE *fp, const char *fmt, va_list args)
{
+ const char *execname;
+
flockfile(fp);
if (progname == NULL) {
- progname = strrchr(getexecname(), '/');
- if (progname == NULL)
- progname = getexecname();
- else
+ execname = getexecname();
+ if ((execname != NULL) &&
+ ((progname = strrchr(execname, '/')) != NULL))
progname++;
+ else
+ progname = execname;
}
- (void) fprintf(fp, "%s: ", progname);
+ if (progname != NULL)
+ (void) fprintf(fp, "%s: ", progname);
if (fmt != NULL) {
(void) vfprintf(fp, fmt, args);