]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/Journald: fix alias and mis-align
author胡玮文 <huww98@outlook.com>
Sat, 16 Mar 2024 11:33:44 +0000 (19:33 +0800)
committer胡玮文 <huww98@outlook.com>
Sat, 16 Mar 2024 11:33:44 +0000 (19:33 +0800)
by replacing assignment with memcpy.

The original version breaks the strict aliasing rule, and may be
mis-aligned, which may cause undefined behavior.

Signed-off-by: 胡玮文 <huww98@outlook.com>
src/common/Journald.cc

index a1321c7eea8e6de64e0d7eb5915d62375a5381b0..983a190b1a7078363593b259aabf4134b298a87b 100644 (file)
@@ -125,7 +125,7 @@ MESSAGE
 
     uint64_t msg_len = htole64(e.size());
     meta_buf.resize(meta_buf.size() + sizeof(msg_len));
-    *(reinterpret_cast<uint64_t*>(meta_buf.end()) - 1) = htole64(e.size());
+    memcpy(meta_buf.end() - sizeof(msg_len), &msg_len, sizeof(msg_len));
 
     meta_vec().iov_base = meta_buf.data();
     meta_vec().iov_len = meta_buf.size();