Accepting request 50409 from Base:System
Copy from Base:System/sysvinit based on submit request 50409 from user WernerFink OBS-URL: https://build.opensuse.org/request/show/50409 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/sysvinit?expand=0&rev=84
This commit is contained in:
commit
1ada3b5457
@ -56,3 +56,54 @@
|
||||
close(c->fd);
|
||||
c->fd = -1;
|
||||
}
|
||||
--- libblogger.c
|
||||
+++ libblogger.c 2010-10-12 16:12:20.743926028 +0000
|
||||
@@ -54,7 +54,7 @@ static int bootlog_init(const int lvl __
|
||||
if (!S_ISFIFO(st.st_mode))
|
||||
goto out;
|
||||
|
||||
- if ((fdfifo = open(fifo_name, O_WRONLY|O_NONBLOCK)) < 0)
|
||||
+ if ((fdfifo = open(fifo_name, O_WRONLY|O_NONBLOCK|O_NOCTTY|O_CLOEXEC)) < 0)
|
||||
goto out;
|
||||
|
||||
ret = 0;
|
||||
--- libconsole.c
|
||||
+++ libconsole.c 2010-10-12 16:20:05.187926537 +0000
|
||||
@@ -770,7 +770,7 @@ void prepareIO(void (*rfunc)(int), void
|
||||
(void)mkfifo(fifo_name, 0600);
|
||||
errno = 0;
|
||||
if (!stat(fifo_name, &st) && S_ISFIFO(st.st_mode)) {
|
||||
- if ((fdfifo = open(fifo_name, O_RDWR|O_NOCTTY)) < 0)
|
||||
+ if ((fdfifo = open(fifo_name, O_RDONLY|O_NOCTTY|O_CLOEXEC)) < 0)
|
||||
warn("can not open named fifo %s: %s\n", fifo_name, strerror(errno));
|
||||
}
|
||||
}
|
||||
@@ -788,7 +788,7 @@ static void more_input (struct timeval *
|
||||
FD_ZERO (&watch);
|
||||
FD_SET (fdread, &watch);
|
||||
|
||||
- if (fdfifo > 0) {
|
||||
+ if (fdfifo >= 0) {
|
||||
FD_SET (fdfifo, &watch);
|
||||
wfds = (fdread > fdfifo ? fdread : fdfifo) + 1;
|
||||
} else
|
||||
@@ -836,7 +836,7 @@ static void more_input (struct timeval *
|
||||
}
|
||||
}
|
||||
|
||||
- if (fdfifo > 0 && FD_ISSET(fdfifo, &watch)) {
|
||||
+ if (fdfifo >= 0 && FD_ISSET(fdfifo, &watch)) {
|
||||
const ssize_t cnt = safein(fdfifo, (char*)trans, sizeof(trans), noerr);
|
||||
|
||||
if (cnt > 0) {
|
||||
@@ -1003,6 +1003,10 @@ void closeIO(void)
|
||||
(void)fclose(flog);
|
||||
flog = NULL;
|
||||
xout:
|
||||
+ if (fdfifo >= 0) {
|
||||
+ close(fdfifo);
|
||||
+ fdfifo = -1;
|
||||
+ }
|
||||
for (c = cons; c; c = c->next) {
|
||||
if (c->fd < 0)
|
||||
continue;
|
||||
|
@ -1,5 +1,15 @@
|
||||
--- makeboot.c
|
||||
+++ makeboot.c 2010-10-12 16:42:53.996426160 +0000
|
||||
@@ -407,6 +407,7 @@ void check_run_files(const char *action,
|
||||
*/
|
||||
#ifndef USE_BLOGD
|
||||
# define bootlog(arg...)
|
||||
+# define closeblog()
|
||||
#endif
|
||||
|
||||
/*
|
||||
--- proc.c
|
||||
+++ proc.c 2010-09-30 14:19:15.595926333 +0200
|
||||
+++ proc.c 2010-09-30 12:19:16.000000000 +0000
|
||||
@@ -94,3 +94,74 @@ int read_proc(unsigned long int * const
|
||||
return 0;
|
||||
}
|
||||
@ -76,7 +86,7 @@
|
||||
+ }
|
||||
+}
|
||||
--- proc.h
|
||||
+++ proc.h 2010-09-30 14:41:35.271926120 +0200
|
||||
+++ proc.h 2010-09-30 12:41:35.000000000 +0000
|
||||
@@ -19,5 +19,3 @@
|
||||
|
||||
extern int read_proc(unsigned long int *prcs_run, unsigned long int *prcs_blked);
|
||||
@ -84,8 +94,29 @@
|
||||
-extern void unraw_consoles(void);
|
||||
-extern void raw_consoles(void);
|
||||
--- startpar.c
|
||||
+++ startpar.c 2010-09-30 15:01:50.787926081 +0200
|
||||
@@ -241,14 +241,7 @@ void callsplash(int n, const char *path,
|
||||
+++ startpar.c 2010-10-12 16:45:32.040429641 +0000
|
||||
@@ -52,6 +52,12 @@
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
+#ifdef USE_BLOGD
|
||||
+# include <libblogger.h>
|
||||
+#else
|
||||
+# define bootlog(arg...)
|
||||
+# define closeblog()
|
||||
+#endif
|
||||
#include "makeboot.h"
|
||||
#include "proc.h"
|
||||
|
||||
@@ -197,6 +203,7 @@ void closeall(void)
|
||||
for (s = 0; s < par; s++)
|
||||
if (prgs[s].fd)
|
||||
close(prgs[s].fd);
|
||||
+ closeblog();
|
||||
}
|
||||
|
||||
void callsplash(int n, const char *path, char *action)
|
||||
@@ -241,14 +248,7 @@ void callsplash(int n, const char *path,
|
||||
return;
|
||||
}
|
||||
|
||||
@ -101,7 +132,7 @@
|
||||
sigprocmask(SIG_UNBLOCK, &nmask, NULL);
|
||||
|
||||
(void)signal(SIGINT, SIG_DFL);
|
||||
@@ -258,6 +251,7 @@ void callsplash(int n, const char *path,
|
||||
@@ -258,6 +258,7 @@ void callsplash(int n, const char *path,
|
||||
(void)signal(SIGTERM, SIG_DFL);
|
||||
(void)signal(SIGCHLD, SIG_DFL);
|
||||
(void)signal(SIGTTIN, SIG_DFL);
|
||||
@ -109,7 +140,7 @@
|
||||
|
||||
TEMP_FAILURE_RETRY(dup2(2, 1));
|
||||
closeall();
|
||||
@@ -456,14 +450,7 @@ void run(struct prg *p)
|
||||
@@ -456,14 +457,7 @@ void run(struct prg *p)
|
||||
return;
|
||||
}
|
||||
|
||||
@ -125,7 +156,7 @@
|
||||
sigprocmask(SIG_UNBLOCK, &nmask, NULL);
|
||||
|
||||
(void)signal(SIGINT, SIG_DFL);
|
||||
@@ -473,6 +460,7 @@ void run(struct prg *p)
|
||||
@@ -473,6 +467,7 @@ void run(struct prg *p)
|
||||
(void)signal(SIGTERM, SIG_DFL);
|
||||
(void)signal(SIGCHLD, SIG_DFL);
|
||||
(void)signal(SIGTTIN, SIG_DFL);
|
||||
@ -133,7 +164,7 @@
|
||||
|
||||
if (setpgid(0, 0))
|
||||
perror("setpgid");
|
||||
@@ -582,14 +570,7 @@ int run_single(const char *prg, const ch
|
||||
@@ -582,14 +577,7 @@ int run_single(const char *prg, const ch
|
||||
{
|
||||
sigset_t nmask;
|
||||
|
||||
@ -149,7 +180,7 @@
|
||||
sigprocmask(SIG_UNBLOCK, &nmask, NULL);
|
||||
|
||||
(void)signal(SIGINT, SIG_DFL);
|
||||
@@ -599,6 +580,7 @@ int run_single(const char *prg, const ch
|
||||
@@ -599,6 +587,7 @@ int run_single(const char *prg, const ch
|
||||
(void)signal(SIGTERM, SIG_DFL);
|
||||
(void)signal(SIGCHLD, SIG_DFL);
|
||||
(void)signal(SIGTTIN, SIG_DFL);
|
||||
@ -157,7 +188,7 @@
|
||||
|
||||
TEMP_FAILURE_RETRY(dup2(2, 1));
|
||||
closeall();
|
||||
@@ -632,19 +614,20 @@ void do_forward(void)
|
||||
@@ -632,19 +621,20 @@ void do_forward(void)
|
||||
{
|
||||
if (errno == EINTR)
|
||||
continue;
|
||||
@ -180,7 +211,7 @@
|
||||
rr = r;
|
||||
}
|
||||
r -= rr;
|
||||
@@ -730,9 +713,23 @@ void detach(struct prg *p, const int sto
|
||||
@@ -730,9 +720,23 @@ void detach(struct prg *p, const int sto
|
||||
{
|
||||
if ((pid = fork()) == 0)
|
||||
{
|
||||
@ -204,7 +235,7 @@
|
||||
execlp(myname, myname, "-f", "--", p->name, NULL);
|
||||
do_forward();
|
||||
}
|
||||
@@ -833,6 +830,8 @@ int main(int argc, char **argv)
|
||||
@@ -833,6 +837,8 @@ int main(int argc, char **argv)
|
||||
char *splashopt = 0;
|
||||
sigset_t nmask, omask, smask;
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 12 18:21:44 CEST 2010 - werner@suse.de
|
||||
|
||||
- libblogger: set O_CLOEXEC for named FIFO /dev/blog (bnc#645793)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Oct 4 16:46:53 CEST 2010 - werner@suse.de
|
||||
|
||||
|
@ -29,7 +29,7 @@ License: GPLv2+
|
||||
Group: System/Base
|
||||
AutoReqProv: on
|
||||
Version: 2.88
|
||||
Release: 18
|
||||
Release: 19
|
||||
Summary: SysV-Style init
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
BuildRequires: audit-devel libselinux-devel libsepol-devel pam-devel
|
||||
|
Loading…
x
Reference in New Issue
Block a user