]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
async,crimson: Add missing init_le calls
authorUlrich Weigand <ulrich.weigand@de.ibm.com>
Mon, 2 Sep 2019 19:25:54 +0000 (21:25 +0200)
committerUlrich Weigand <ulrich.weigand@de.ibm.com>
Wed, 2 Oct 2019 16:30:27 +0000 (18:30 +0200)
Add calls to init_le16/32/64 to properly byte-swap values on
big-endian systems when assigning to ceph_le16/32/64 variables.

Fixes (partially): https://tracker.ceph.com/issues/41605

Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
(cherry picked from commit 62def3ec70434694fcf918c00666ba0e5f9325c2)
Changes from cherry-picked commit:
- Omitted changes to src/crimson/net/ProtocolV2.cc
  (file does not yet exist in nautilus).
Signed-off-by: Ulrich Weigand <ulrich.weigand@de.ibm.com>
src/msg/async/ProtocolV2.cc

index 5666b24c7a2946e804a2b9097005f6889d112206..4b03f5ebcf46ce25550372a847cd9f09590f3241 100644 (file)
@@ -502,8 +502,8 @@ ssize_t ProtocolV2::write_message(Message *m, bool more) {
   ceph_msg_header2 header2{header.seq,        header.tid,
                            header.type,       header.priority,
                            header.version,
-                           0,                 header.data_off,
-                           ack_seq,
+                           init_le32(0),      header.data_off,
+                           init_le64(ack_seq),
                            footer.flags,      header.compat_version,
                            header.reserved};
 
@@ -1385,15 +1385,16 @@ CtPtr ProtocolV2::handle_message() {
                          current_header.type,
                          current_header.priority,
                          current_header.version,
-                         msg_frame.front_len(),
-                         msg_frame.middle_len(),
-                         msg_frame.data_len(),
+                         init_le32(msg_frame.front_len()),
+                         init_le32(msg_frame.middle_len()),
+                         init_le32(msg_frame.data_len()),
                          current_header.data_off,
                          peer_name,
                          current_header.compat_version,
                          current_header.reserved,
-                         0};
-  ceph_msg_footer footer{0, 0, 0, 0, current_header.flags};
+                         init_le32(0)};
+  ceph_msg_footer footer{init_le32(0), init_le32(0),
+                        init_le32(0), init_le64(0), current_header.flags};
 
   Message *message = decode_message(cct, 0, header, footer,
       msg_frame.front(),