1 Star 0 Fork 9

rockerzhu/systemd

forked from OpenCloudOS Stream/systemd 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
CVE-2023-31438.patch 1.75 KB
一键复制 编辑 原始数据 按行查看 历史
cunshunxia 提交于 2023-10-19 08:05 . fix CVE-2023-31438 and CVE-2023-31439
diff --git a/src/libsystemd/sd-journal/journal-authenticate.c b/src/libsystemd/sd-journal/journal-authenticate.c
index 159e215367..2958696c59 100644
--- a/src/libsystemd/sd-journal/journal-authenticate.c
+++ b/src/libsystemd/sd-journal/journal-authenticate.c
@@ -34,8 +34,11 @@ int journal_file_append_tag(JournalFile *f) {
if (!JOURNAL_HEADER_SEALED(f->header))
return 0;
- if (!f->hmac_running)
- return 0;
+ if (!f->hmac_running) {
+ r = journal_file_hmac_start(f);
+ if (r < 0)
+ return r;
+ }
assert(f->hmac);
@@ -154,6 +157,11 @@ int journal_file_fsprg_evolve(JournalFile *f, uint64_t realtime) {
FSPRG_Evolve(f->fsprg_state);
epoch = FSPRG_GetEpoch(f->fsprg_state);
+ if ( epoch < goal ) {
+ r = journal_file_append_tag(f);
+ if (r < 0)
+ return r;
+ }
}
}
diff --git a/src/libsystemd/sd-journal/journal-verify.c b/src/libsystemd/sd-journal/journal-verify.c
index c3c8801101..b3c78a107d 100644
--- a/src/libsystemd/sd-journal/journal-verify.c
+++ b/src/libsystemd/sd-journal/journal-verify.c
@@ -1132,7 +1132,7 @@ int journal_file_verify(
goto fail;
}
- if (le64toh(o->tag.epoch) < last_epoch) {
+ if (le64toh(o->tag.epoch) != last_epoch && le64toh(o->tag.epoch) != last_epoch + 1) {
error(p,
"Epoch sequence out of synchronization (%"PRIu64" < %"PRIu64")",
le64toh(o->tag.epoch),
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/rockerzhu/systemd.git
[email protected]:rockerzhu/systemd.git
rockerzhu
systemd
systemd
master

搜索帮助