From ca3127ffbc3cd1d5946a6f0b4f22eb87659b7d3b Mon Sep 17 00:00:00 2001 From: Matias Fontanini Date: Wed, 31 May 2017 19:42:22 -0700 Subject: [PATCH] Fix some big endian issues --- src/utils/radiotap_parser.cpp | 8 ++++---- tests/src/ipv6_test.cpp | 4 ---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/utils/radiotap_parser.cpp b/src/utils/radiotap_parser.cpp index c3babbf0..7655de27 100644 --- a/src/utils/radiotap_parser.cpp +++ b/src/utils/radiotap_parser.cpp @@ -290,8 +290,7 @@ bool RadioTapParser::skip_current_field() { bool RadioTapParser::advance_to_next_namespace() { const uint32_t initial_index = namespace_index_; - load_current_flags(); - const RadioTapFlags* flags = (const RadioTapFlags*)¤t_flags_; + const RadioTapFlags* flags = get_flags_ptr(); while (flags->ext == 1) { if (is_field_set(29, flags)) { current_namespace_ = RADIOTAP_NS; @@ -303,9 +302,9 @@ bool RadioTapParser::advance_to_next_namespace() { current_namespace_ = UNKNOWN_NS; } namespace_index_++; - load_current_flags(); - flags = (const RadioTapFlags*)¤t_flags_; + flags++; } + load_current_flags(); return initial_index != namespace_index_; } @@ -325,6 +324,7 @@ const RadioTapFlags* RadioTapParser::get_flags_ptr() const { void RadioTapParser::load_current_flags() { memcpy(¤t_flags_, get_flags_ptr(), sizeof(current_flags_)); + current_flags_ = Endian::le_to_host(current_flags_); } } // Utils diff --git a/tests/src/ipv6_test.cpp b/tests/src/ipv6_test.cpp index e8017cd9..d8aecff5 100644 --- a/tests/src/ipv6_test.cpp +++ b/tests/src/ipv6_test.cpp @@ -192,10 +192,6 @@ TEST_F(IPv6Test, Serialize) { TEST_F(IPv6Test, Broken1) { EthernetII pkt(broken1, sizeof(broken1)); - for (auto c : pkt.serialize()) { - printf("%2d, ", (int)c); - } - printf("\n"); EXPECT_EQ( PDU::serialization_type(broken1, broken1 + sizeof(broken1)), pkt.serialize()