diff --git a/libutil/mode.c b/libutil/mode.c index 365b9ad..187c7a3 100644 --- a/libutil/mode.c +++ b/libutil/mode.c @@ -1,3 +1,4 @@ +/* See LICENSE file for copyright and license details. */ #include #include #include @@ -23,10 +24,8 @@ parsemode(const char *str, mode_t mode, mode_t mask) octal = strtol(str, &end, 8); if (*end == '\0') { - if (octal < 0 || octal > 07777) { + if (octal < 0 || octal > 07777) eprintf("%s: invalid mode\n", str); - return -1; - } mode = 0; if (octal & 04000) mode |= S_ISUID; if (octal & 02000) mode |= S_ISGID; @@ -78,7 +77,6 @@ next: break; default: eprintf("%s: invalid mode\n", str); - return -1; } perm = 0; diff --git a/xinstall.c b/xinstall.c index bf921fb..70d7097 100644 --- a/xinstall.c +++ b/xinstall.c @@ -215,11 +215,8 @@ main(int argc, char *argv[]) owner = getuid(); } - if (mflag) { + if (mflag) mode = parsemode(mflag, mode, 0); - if (mode < 0) - return 1; - } if (tflag) { memmove(argv - 1, argv, argc);