strtol clamps returned value between INT_MIN and INT_MAX, causing
invalid value (255.255.255.127) being reported for any address
if last octet > 127 when sizeof(long) == 4.
---
drivers/huaweimodem/gprs-context.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/huaweimodem/gprs-context.c
b/drivers/huaweimodem/gprs-context.c
index 3acd90c..dda5e32 100644
--- a/drivers/huaweimodem/gprs-context.c
+++ b/drivers/huaweimodem/gprs-context.c
@@ -80,7 +80,7 @@ static gboolean get_next_addr(GAtResultIter *iter, char
**addr)
if (g_at_result_iter_next_unquoted_string(iter, &str) == FALSE)
return FALSE;
- val = strtol(str, NULL, 16);
+ val = strtoul(str, NULL, 16);
if (addr)
*addr = g_strdup_printf("%u.%u.%u.%u",
--
2.5.0
_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono