Index: src/usr.sbin/zic/zic.c =================================================================== --- src/usr.sbin/zic/zic.c (revision 99) +++ src/usr.sbin/zic/zic.c (revision 100) @@ -501,10 +501,15 @@ break; case 'm': { + errno = 0; void *set = setmode(optarg); - if (set == NULL) - errx(EXIT_FAILURE, -_("invalid file mode")); + if (set == NULL) { + if(!errno) + errx(EXIT_FAILURE, + _("invalid file mode")); + else + err(EXIT_FAILURE, "setmode"); + } mflag = getmode(set, mflag); free(set); break;