SHA256
1
0
forked from pool/systemd
systemd/0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch
Tomáš Chvátal fbd54ec893 Accepting request 203396 from Base:System
(please also push to 13.1, I want the same version as F20)
- Add
  0001-gpt-auto-generator-exit-immediately-if-in-container.patch:
  don't start gpt auto-generator in container (git).
- Add
  0001-manager-when-verifying-whether-clients-may-change-en.patch:
  fix reload check in selinux case (git).
- Add 0001-logind-fix-bus-introspection-data-for-TakeControl.patch:
  fix introspection for TakeControl (git).
- Add 0001-mount-check-for-NULL-before-reading-pm-what.patch: fix
  crash when parsing some incorrect unit (git).
- Add
  0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch:
  Fix udev rules parsing (git).
- Add
  0001-systemd-serialize-deserialize-forbid_restart-value.patch:
  Fix incorrect deserialization for forbid_restart (git).
- Add
  0001-core-unify-the-way-we-denote-serialization-attribute.patch:
  Ensure forbid_restart is named like other attributes (git).
- Add 0001-journald-fix-minor-memory-leak.patch: fix memleak in
  journald (git).
- Add
  0001-do-not-accept-garbage-from-acpi-firmware-performance.patch:
  Improve ACPI firmware performance parsing (git).
- Add
  0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch:
  Fix journal rotation (git).
- Add
  0001-login-fix-invalid-free-in-sd_session_get_vt.patch:
  Fix memory corruption in sd_session_get_vt (git). (forwarded request 203387 from fcrozat)

OBS-URL: https://build.opensuse.org/request/show/203396
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=163
2013-10-17 12:28:29 +00:00

40 lines
1.6 KiB
Diff

From 2b98f75a63e6022bf74a7d678c47faa5208c794f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 9 Oct 2013 22:13:13 -0400
Subject: [PATCH] journald: remove rotated file from hashmap when rotation
fails
Before, when the user journal file was rotated, journal_file_rotate
could close the old file and fail to open the new file. In that
case, we would leave the old (deallocated) file in the hashmap.
On subsequent accesses, we could retrieve this stale entry, leading
to a segfault.
When journal_file_rotate fails with the file pointer set to 0,
old file is certainly gone, and cannot be used anymore.
https://bugzilla.redhat.com/show_bug.cgi?id=890463
---
src/journal/journald-server.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
index 4f47eb1..e03e413 100644
--- a/src/journal/journald-server.c
+++ b/src/journal/journald-server.c
@@ -321,8 +321,10 @@ void server_rotate(Server *s) {
if (r < 0)
if (f)
log_error("Failed to rotate %s: %s", f->path, strerror(-r));
- else
+ else {
log_error("Failed to create user journal: %s", strerror(-r));
+ hashmap_remove(s->user_journals, k);
+ }
else {
hashmap_replace(s->user_journals, k, f);
server_fix_perms(s, f, PTR_TO_UINT32(k));
--
1.8.4