Репозитории ALT
5.1: | 2.86-alt2 |
4.1: | 2.86-alt2 |
4.0: | 2.86-alt1 |
3.0: | 2.85-alt8 |
Группа :: Система/Настройка/Загрузка и инициализация
Пакет: SysVinit
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: sysvinit-2.86-alt-progname-umask.patch
Скачать
Скачать
--- sysvinit-2.86.orig/src/init.c 2004-07-30 12:16:20 +0000
+++ sysvinit-2.86/src/init.c 2007-01-05 21:34:45 +0000
@@ -2493,7 +2493,7 @@ int init_main()
/*
* Tell the user about the syntax we expect.
*/
-void usage(char *s)
+void __attribute__((noreturn)) usage(const char *s)
{
fprintf(stderr, "Usage: %s 0123456SsQqAaBbCcUu\n", s);
exit(1);
@@ -2509,6 +2509,9 @@ int telinit(char *progname, int argc, ch
int f, fd, l;
char *env = NULL;
+ if (!argc)
+ usage(progname);
+
memset(&request, 0, sizeof(request));
request.magic = INIT_MAGIC;
@@ -2596,20 +2599,15 @@ int telinit(char *progname, int argc, ch
*/
int main(int argc, char **argv)
{
- char *p;
int f;
int isinit;
- /* Get my own name */
- if ((p = strrchr(argv[0], '/')) != NULL)
- p++;
- else
- p = argv[0];
- umask(022);
+ umask(umask(077) | 022);
/* Quick check */
if (geteuid() != 0) {
- fprintf(stderr, "%s: must be superuser.\n", p);
+ fprintf(stderr, "%s: must be superuser.\n",
+ program_invocation_short_name);
exit(1);
}
@@ -2622,7 +2620,7 @@ int main(int argc, char **argv)
isinit = 1;
break;
}
- if (!isinit) exit(telinit(p, argc, argv));
+ if (!isinit) exit(telinit(program_invocation_short_name, argc, argv));
/*
* Check for re-exec