diff options
-rw-r--r-- | catalog/systemd.ru.catalog | 6 | ||||
-rw-r--r-- | src/core/ima-setup.c | 15 | ||||
-rw-r--r-- | src/core/mount.c | 3 | ||||
-rw-r--r-- | src/login/71-seat.rules.in | 1 | ||||
-rw-r--r-- | src/login/logind-dbus.c | 1 |
5 files changed, 21 insertions, 5 deletions
diff --git a/catalog/systemd.ru.catalog b/catalog/systemd.ru.catalog index f99532469a..03eea04c9f 100644 --- a/catalog/systemd.ru.catalog +++ b/catalog/systemd.ru.catalog @@ -81,7 +81,7 @@ Documentation: man:core(5) Записан дамп памяти. Вероятно, это произошло из-за ошибки, допущенной в коде программы. -Рекомендуется сообщить ее разработчикам о возникшей проблеме. +Рекомендуется сообщить её разработчикам о возникшей проблеме. # Subject: A new session @SESSION_ID@ has been created for user @USER_ID@ -- 8d45620c1a4348dbb17410da57c60c66 @@ -146,7 +146,7 @@ Defined-By: systemd Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel Все системные службы, запуск которых предписан настройками, были запущены. -Впрочем, это еще не означает, что система в данный момент ничем не занята, +Впрочем, это ещё не означает, что система в данный момент ничем не занята, так как некоторые службы могут продолжать инициализацию даже после того, как отчитались о своем запуске. @@ -274,7 +274,7 @@ Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel столбце файла /etc/fstab, либо в параметре Where= файла конфигурации юнита), не является пустым. Это никак не мешает монтированию, однако ранее находившиеся в нем файлы будут недоступны. Чтобы получить к ним доступ, вы можете вручную -перемонтировать нижележащую файловую систему в другую точку. +перемонтировать эту файловую систему в другую точку. # Subject: A virtual machine or container has been started -- 24d8d4452573402496068381a6312df2 diff --git a/src/core/ima-setup.c b/src/core/ima-setup.c index 7721b3ecaf..4d8b638115 100644 --- a/src/core/ima-setup.c +++ b/src/core/ima-setup.c @@ -24,9 +24,10 @@ #include <unistd.h> #include <errno.h> #include <fcntl.h> +#include <sys/stat.h> +#include <sys/mman.h> #include "ima-setup.h" -#include "copy.h" #include "util.h" #include "log.h" @@ -39,6 +40,8 @@ int ima_setup(void) { #ifdef HAVE_IMA _cleanup_close_ int policyfd = -1, imafd = -1; + struct stat st; + char *policy; if (access(IMA_SECFS_DIR, F_OK) < 0) { log_debug("IMA support is disabled in the kernel, ignoring."); @@ -63,12 +66,20 @@ int ima_setup(void) { return 0; } - r = copy_bytes(policyfd, imafd, (off_t) -1, false); + if (fstat(policyfd, &st) < 0) + return log_error_errno(errno, "Failed to fstat "IMA_POLICY_PATH": %m"); + + policy = mmap(NULL, st.st_size, PROT_READ, MAP_PRIVATE, policyfd, 0); + if (policy == MAP_FAILED) + return log_error_errno(errno, "Failed to mmap "IMA_POLICY_PATH": %m"); + + r = loop_write(imafd, policy, (size_t) st.st_size, false); if (r < 0) log_error_errno(r, "Failed to load the IMA custom policy file "IMA_POLICY_PATH": %m"); else log_info("Successfully loaded the IMA custom policy "IMA_POLICY_PATH"."); + munmap(policy, st.st_size); #endif /* HAVE_IMA */ return r; } diff --git a/src/core/mount.c b/src/core/mount.c index ba1dcf1e85..851b41351e 100644 --- a/src/core/mount.c +++ b/src/core/mount.c @@ -1522,6 +1522,9 @@ static int mount_load_proc_self_mountinfo(Manager *m, bool set_flags) { options = mnt_fs_get_options(fs); fstype = mnt_fs_get_fstype(fs); + if (!device || !path) + continue; + if (cunescape(device, UNESCAPE_RELAX, &d) < 0) return log_oom(); diff --git a/src/login/71-seat.rules.in b/src/login/71-seat.rules.in index ad26acbbb3..ab7b66f651 100644 --- a/src/login/71-seat.rules.in +++ b/src/login/71-seat.rules.in @@ -11,6 +11,7 @@ TAG=="uaccess", SUBSYSTEM!="sound", TAG+="seat" SUBSYSTEM=="sound", KERNEL=="card*", TAG+="seat" SUBSYSTEM=="input", KERNEL=="input*", TAG+="seat" SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", TAG+="seat", TAG+="master-of-seat" +SUBSYSTEM=="drm", KERNEL=="card[0-9]*", TAG+="seat", TAG+="master-of-seat" SUBSYSTEM=="usb", ATTR{bDeviceClass}=="09", TAG+="seat" # 'Plugable' USB hub, sound, network, graphics adapter diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index 10a9df0961..b272401e5b 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -2522,6 +2522,7 @@ int match_job_removed(sd_bus_message *message, void *userdata, sd_bus_error *err session_jobs_reply(session, unit, result); session_save(session); + user_save(session->user); session_add_to_gc_queue(session); } |