[OpenWrt-Devel] [PATCH] ubus: lua binding does not allow a reply with 64 bit numbers
Alin Nastac
alin.nastac at gmail.com
Mon Feb 3 07:58:04 EST 2020
Numbers originated from lua bindings get explicitly truncated to 32 bit.
Signed-off-by: Alin Nastac <alin.nastac at gmail.com>
---
lua/ubus.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lua/ubus.c b/lua/ubus.c
index 86dcc50..aa01ac9 100644
--- a/lua/ubus.c
+++ b/lua/ubus.c
@@ -196,7 +196,11 @@ ubus_lua_format_blob(lua_State *L, struct blob_buf *b, bool table)
case LUA_TINT:
#endif
case LUA_TNUMBER:
- blobmsg_add_u32(b, key, (uint32_t)lua_tointeger(L, -1));
+ if((uint64_t)lua_tonumber(L, -1) > INT_MAX) {
+ blobmsg_add_u64(b, key, (uint64_t)lua_tonumber(L, -1));
+ } else {
+ blobmsg_add_u32(b, key, (uint32_t)lua_tointeger(L, -1));
+ }
break;
case LUA_TSTRING:
--
2.7.4
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list