]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#1680] inttotext should convert from network order
authorRazvan Becheriu <razvan@isc.org>
Tue, 16 Mar 2021 10:11:17 +0000 (12:11 +0200)
committerRazvan Becheriu <razvan@isc.org>
Wed, 5 May 2021 17:12:18 +0000 (20:12 +0300)
src/lib/eval/token.cc

index 4919b657a181b4b668e5ab5233adcac1d183f3a9..fded03d7cb69aa8b1568a242cc31ceaab392448c 100644 (file)
@@ -170,7 +170,8 @@ TokenInt16ToText::evaluate(Pkt& /*pkt*/, ValueStack& values) {
     }
 
     stringstream tmp;
-    tmp << *(reinterpret_cast<int16_t*>(const_cast<char*>(op.data())));
+    uint16_t value = *(reinterpret_cast<uint16_t*>(const_cast<char*>(op.data())));
+    tmp << static_cast<int16_t>(ntohs(value));
     op = tmp.str();
     values.push(op);
 
@@ -193,7 +194,8 @@ TokenInt32ToText::evaluate(Pkt& /*pkt*/, ValueStack& values) {
     }
 
     stringstream tmp;
-    tmp << *(reinterpret_cast<int32_t*>(const_cast<char*>(op.data())));
+    uint32_t value = *(reinterpret_cast<uint32_t*>(const_cast<char*>(op.data())));
+    tmp << static_cast<int32_t>(ntohl(value));
     op = tmp.str();
     values.push(op);
 
@@ -239,7 +241,8 @@ TokenUInt16ToText::evaluate(Pkt& /*pkt*/, ValueStack& values) {
     }
 
     stringstream tmp;
-    tmp << *(reinterpret_cast<uint16_t*>(const_cast<char*>(op.data())));
+    uint16_t value = *(reinterpret_cast<uint16_t*>(const_cast<char*>(op.data())));
+    tmp << ntohs(value);
     op = tmp.str();
     values.push(op);
 
@@ -262,7 +265,8 @@ TokenUInt32ToText::evaluate(Pkt& /*pkt*/, ValueStack& values) {
     }
 
     stringstream tmp;
-    tmp << *(reinterpret_cast<uint32_t*>(const_cast<char*>(op.data())));
+    uint32_t value = *(reinterpret_cast<uint32_t*>(const_cast<char*>(op.data())));
+    tmp << ntohl(value);
     op = tmp.str();
     values.push(op);