ltq-vdsl-app: Fix counter overflow resulting in negative values
authorRoland Barenbrug <roland@treslong.com>
Wed, 29 Jun 2022 11:09:25 +0000 (13:09 +0200)
committerChristian Lamparter <chunkeey@gmail.com>
Sat, 6 Aug 2022 20:24:39 +0000 (22:24 +0200)
The re-transmit counters can overflow the 32 bit representation resulting
in negative values being displayed. Background being that the numbers are
treated at some point as signed INT rather than unsigned INT.
Change the counters from 32 bit to 64 bit, should provide sufficient room
to avoid any overflow. Not the nicest solution but it works

Fixes: #10077
Signed-off-by: Roland Barenbrug <roland@treslong.com>
Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
(cherry picked from commit 456b9029d764e69f390ee26bca24883b12eb83c2)

package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c

index 93eecaf71d2ff1bb2b2dcec4dbaf2477dc1ea5bc..61ac7708ba1fb229ac7bf3e4d3b55e1774e3c513 100644 (file)
@@ -146,7 +146,7 @@ static inline void m_bool(const char *id, bool value) {
 }
 
 static inline void m_u32(const char *id, uint32_t value) {
-       blobmsg_add_u32(&b, id, value);
+       blobmsg_add_u64(&b, id, value);
 }
 
 static inline void m_str(const char *id, const char *value) {