forked from pool/systemd
77593c6f2f
- Add upstream patches 0001-login-fix-memory-leak-on-DropController.patch 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch 0003-sd-journal-properly-convert-object-size-on-big-endia.patch 0004-sd-journal-verify-that-object-start-with-the-field-n.patch - Add upstream patch 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch to avoid that hwdb ID's for unrecognised USB device are taken from the USB hub. - Add upstream patches 0001-systemctl-Correct-error-message-printed-when-bus_pro.patch 0002-units-order-systemd-fsck-.service-after-local-fs-pre.patch 0003-keymap-Adjust-for-more-Samsung-900X4-series.patch - Add patch use-rndaddentropy-ioctl-to-load-random-seed.patch to use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) - Add upstream patches 0001-login-fix-memory-leak-on-DropController.patch 0002-util-fix-minimal-race-where-we-might-miss-SIGTERMs-w.patch 0003-sd-journal-properly-convert-object-size-on-big-endia.patch 0004-sd-journal-verify-that-object-start-with-the-field-n.patch - Add upstream patch 1064-udev-hwdb-do-not-look-at-usb_device-parents.patch to avoid that hwdb ID's for unrecognised USB device are taken from the USB hub. - Add upstream patches OBS-URL: https://build.opensuse.org/request/show/246717 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=202
42 lines
1.7 KiB
Diff
42 lines
1.7 KiB
Diff
Based on 0f99f74a14ef193c1ebde687c5cc76e1d67b85ef Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
Date: Tue, 26 Aug 2014 23:54:31 -0400
|
|
Subject: [PATCH] sd-journal: verify that object start with the field name
|
|
|
|
If the journal is corrupted, we might return an object that does
|
|
not start with the expected field name and/or is shorter than it
|
|
should.
|
|
---
|
|
src/journal/sd-journal.c | 15 +++++++++++++++
|
|
1 file changed, 15 insertions(+)
|
|
|
|
diff --git src/journal/sd-journal.c src/journal/sd-journal.c
|
|
index 80ff8fe..693707c 100644
|
|
--- src/journal/sd-journal.c
|
|
+++ src/journal/sd-journal.c
|
|
@@ -2571,6 +2571,21 @@ _public_ int sd_journal_enumerate_unique(sd_journal *j, const void **data, size_
|
|
if (r < 0)
|
|
return r;
|
|
|
|
+ /* Check if we have at least the field name and "=". */
|
|
+ if (ol <= k) {
|
|
+ log_debug("%s:offset " OFSfmt ": object has size %zu, expected at least %zu",
|
|
+ j->unique_file->path, j->unique_offset,
|
|
+ ol, k + 1);
|
|
+ return -EBADMSG;
|
|
+ }
|
|
+
|
|
+ if (memcmp(odata, j->unique_field, k) || ((const char*) odata)[k] != '=') {
|
|
+ log_debug("%s:offset " OFSfmt ": object does not start with \"%s=\"",
|
|
+ j->unique_file->path, j->unique_offset,
|
|
+ j->unique_field);
|
|
+ return -EBADMSG;
|
|
+ }
|
|
+
|
|
/* OK, now let's see if we already returned this data
|
|
* object by checking if it exists in the earlier
|
|
* traversed files. */
|
|
--
|
|
1.7.9.2
|
|
|