Compare commits

..

No commits in common. "c199cc0704271378ea5eafc0bddb6b7453c4e71f" and "12c829376a95ee0a734b8dbd347042062516f0a9" have entirely different histories.

3 changed files with 19 additions and 15 deletions

View File

@ -266,6 +266,7 @@ static int request_handler(
int r, code, fd;
_cleanup_free_ char *hostname = NULL;
bool chunked = false;
size_t len;
assert(connection);
assert(connection_cls);
@ -301,8 +302,6 @@ static int request_handler(
header = MHD_lookup_connection_value(connection, MHD_HEADER_KIND, "Content-Length");
if (header) {
size_t len;
if (chunked)
return mhd_respond(connection, MHD_HTTP_BAD_REQUEST,
"Content-Length must not specified when Transfer-Encoding type is 'chuncked'");

View File

@ -337,7 +337,7 @@ static int process_and_watch_password_files(bool watch) {
};
_cleanup_close_ int notify = -1, signal_fd = -1, tty_block_fd = -1;
struct pollfd pollfd[_FD_MAX];
struct pollfd pollfd[_FD_MAX] = {};
sigset_t mask;
int r;
@ -354,7 +354,8 @@ static int process_and_watch_password_files(bool watch) {
if (signal_fd < 0)
return log_error_errno(errno, "Failed to allocate signal file descriptor: %m");
pollfd[FD_SIGNAL] = (struct pollfd) { .fd = signal_fd, .events = POLLIN };
pollfd[FD_SIGNAL].fd = signal_fd;
pollfd[FD_SIGNAL].events = POLLIN;
notify = inotify_init1(IN_CLOEXEC);
if (notify < 0)
@ -364,7 +365,8 @@ static int process_and_watch_password_files(bool watch) {
if (r < 0)
return r;
pollfd[FD_INOTIFY] = (struct pollfd) { .fd = notify, .events = POLLIN };
pollfd[FD_INOTIFY].fd = notify;
pollfd[FD_INOTIFY].events = POLLIN;
}
for (;;) {
@ -387,7 +389,7 @@ static int process_and_watch_password_files(bool watch) {
if (!watch)
break;
if (poll(pollfd, _FD_MAX, timeout) < 0) {
if (poll(pollfd, watch ? _FD_MAX : _FD_MAX-1, timeout) < 0) {
if (errno == EINTR)
continue;

View File

@ -21,7 +21,6 @@
#include "main-func.h"
#include "process-util.h"
#include "special.h"
#include "stdio-util.h"
#include "strv.h"
#include "unit-name.h"
#include "util.h"
@ -189,8 +188,10 @@ static int on_runlevel(Context *c) {
/* Secondly, get new runlevel */
runlevel = get_current_runlevel(c);
if (runlevel < 0)
return runlevel;
if (runlevel == 0)
return log_warning("Failed to get new runlevel, utmp update skipped.");
@ -199,21 +200,23 @@ static int on_runlevel(Context *c) {
#if HAVE_AUDIT
if (c->audit_fd >= 0) {
char s[STRLEN("old-level=_ new-level=_") + 1];
_cleanup_free_ char *s = NULL;
xsprintf(s, "old-level=%c new-level=%c",
previous > 0 ? previous : 'N',
runlevel);
if (asprintf(&s, "old-level=%c new-level=%c",
previous > 0 ? previous : 'N',
runlevel > 0 ? runlevel : 'N') < 0)
return log_oom();
if (audit_log_user_comm_message(c->audit_fd, AUDIT_SYSTEM_RUNLEVEL, s,
"systemd-update-utmp", NULL, NULL, NULL, 1) < 0 && errno != EPERM)
if (audit_log_user_comm_message(c->audit_fd, AUDIT_SYSTEM_RUNLEVEL, s, "systemd-update-utmp", NULL, NULL, NULL, 1) < 0 && errno != EPERM)
r = log_error_errno(errno, "Failed to send audit message: %m");
}
#endif
q = utmp_put_runlevel(runlevel, previous);
if (q < 0 && !IN_SET(q, -ESRCH, -ENOENT))
return log_error_errno(q, "Failed to write utmp record: %m");
if (q < 0 && !IN_SET(q, -ESRCH, -ENOENT)) {
log_error_errno(q, "Failed to write utmp record: %m");
r = q;
}
return r;
}