Skip to content

Commit

Permalink
Fix some big endian issues
Browse files Browse the repository at this point in the history
  • Loading branch information
mfontanini committed Jun 6, 2017
1 parent 77d9657 commit ca3127f
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 8 deletions.
8 changes: 4 additions & 4 deletions src/utils/radiotap_parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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*)&current_flags_;
const RadioTapFlags* flags = get_flags_ptr();
while (flags->ext == 1) {
if (is_field_set(29, flags)) {
current_namespace_ = RADIOTAP_NS;
Expand All @@ -303,9 +302,9 @@ bool RadioTapParser::advance_to_next_namespace() {
current_namespace_ = UNKNOWN_NS;
}
namespace_index_++;
load_current_flags();
flags = (const RadioTapFlags*)&current_flags_;
flags++;
}
load_current_flags();
return initial_index != namespace_index_;
}

Expand All @@ -325,6 +324,7 @@ const RadioTapFlags* RadioTapParser::get_flags_ptr() const {

void RadioTapParser::load_current_flags() {
memcpy(&current_flags_, get_flags_ptr(), sizeof(current_flags_));
current_flags_ = Endian::le_to_host(current_flags_);
}

} // Utils
Expand Down
4 changes: 0 additions & 4 deletions tests/src/ipv6_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down

0 comments on commit ca3127f

Please sign in to comment.