Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37899716
en ru br
Репозитории ALT
5.1: 2.86-alt2
4.1: 2.86-alt2
4.0: 2.86-alt1
3.0: 2.85-alt8
www.altlinux.org/Changes

Группа :: Система/Настройка/Загрузка и инициализация
Пакет: 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
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin