teknoraver / rpms / systemd

Forked from rpms/systemd 3 months ago
Clone

Blame 0014-basic-journal-importer-Fix-unaligned-access-in-get_d.patch

Zbigniew Jędrzejewski-Szmek f4a676
From a7637ee87936b9530b0ed56b5520a3e22bd04f94 Mon Sep 17 00:00:00 2001
Zbigniew Jędrzejewski-Szmek f4a676
From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Zbigniew Jędrzejewski-Szmek f4a676
Date: Wed, 22 Mar 2017 03:36:50 +0100
Zbigniew Jędrzejewski-Szmek f4a676
Subject: [PATCH] basic/journal-importer: Fix unaligned access in
Zbigniew Jędrzejewski-Szmek f4a676
 get_data_size() (#5622)
Zbigniew Jędrzejewski-Szmek f4a676
Zbigniew Jędrzejewski-Szmek f4a676
(cherry picked from commit f652c62d71a412704efe7c73c2066d1baaf83456)
Zbigniew Jędrzejewski-Szmek f4a676
---
Zbigniew Jędrzejewski-Szmek f4a676
 src/basic/journal-importer.c | 3 ++-
Zbigniew Jędrzejewski-Szmek f4a676
 1 file changed, 2 insertions(+), 1 deletion(-)
Zbigniew Jędrzejewski-Szmek f4a676
Zbigniew Jędrzejewski-Szmek f4a676
diff --git a/src/basic/journal-importer.c b/src/basic/journal-importer.c
Zbigniew Jędrzejewski-Szmek f4a676
index d25fd358e8..66119d2de1 100644
Zbigniew Jędrzejewski-Szmek f4a676
--- a/src/basic/journal-importer.c
Zbigniew Jędrzejewski-Szmek f4a676
+++ b/src/basic/journal-importer.c
Zbigniew Jędrzejewski-Szmek f4a676
@@ -24,6 +24,7 @@
Zbigniew Jędrzejewski-Szmek f4a676
 #include "fd-util.h"
Zbigniew Jędrzejewski-Szmek f4a676
 #include "parse-util.h"
Zbigniew Jędrzejewski-Szmek f4a676
 #include "string-util.h"
Zbigniew Jędrzejewski-Szmek f4a676
+#include "unaligned.h"
Zbigniew Jędrzejewski-Szmek f4a676
 
Zbigniew Jędrzejewski-Szmek f4a676
 enum {
Zbigniew Jędrzejewski-Szmek f4a676
         IMPORTER_STATE_LINE = 0,    /* waiting to read, or reading line */
Zbigniew Jędrzejewski-Szmek f4a676
@@ -203,7 +204,7 @@ static int get_data_size(JournalImporter *imp) {
Zbigniew Jędrzejewski-Szmek f4a676
         if (r <= 0)
Zbigniew Jędrzejewski-Szmek f4a676
                 return r;
Zbigniew Jędrzejewski-Szmek f4a676
 
Zbigniew Jędrzejewski-Szmek f4a676
-        imp->data_size = le64toh( *(uint64_t *) data );
Zbigniew Jędrzejewski-Szmek f4a676
+        imp->data_size = unaligned_read_le64(data);
Zbigniew Jędrzejewski-Szmek f4a676
         if (imp->data_size > DATA_SIZE_MAX) {
Zbigniew Jędrzejewski-Szmek f4a676
                 log_error("Stream declares field with size %zu > DATA_SIZE_MAX = %u",
Zbigniew Jędrzejewski-Szmek f4a676
                           imp->data_size, DATA_SIZE_MAX);