aboutsummaryrefslogtreecommitdiff
path: root/plugins/huawei
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/huawei')
-rw-r--r--plugins/huawei/mm-broadband-modem-huawei.c4
-rw-r--r--plugins/huawei/mm-modem-helpers-huawei.c30
2 files changed, 15 insertions, 19 deletions
diff --git a/plugins/huawei/mm-broadband-modem-huawei.c b/plugins/huawei/mm-broadband-modem-huawei.c
index feaabd46..e2c90d14 100644
--- a/plugins/huawei/mm-broadband-modem-huawei.c
+++ b/plugins/huawei/mm-broadband-modem-huawei.c
@@ -2330,7 +2330,7 @@ decode (MMIfaceModem3gppUssd *self,
const gchar *reply,
GError **error)
{
- g_autofree gchar *bin = NULL;
+ g_autofree guint8 *bin = NULL;
g_autofree guint8 *unpacked = NULL;
gsize bin_len = 0;
guint32 unpacked_len;
@@ -2339,7 +2339,7 @@ decode (MMIfaceModem3gppUssd *self,
if (!bin)
return NULL;
- unpacked = mm_charset_gsm_unpack ((guint8*) bin, (bin_len * 8) / 7, 0, &unpacked_len);
+ unpacked = mm_charset_gsm_unpack (bin, (bin_len * 8) / 7, 0, &unpacked_len);
/* if the last character in a 7-byte block is padding, then drop it */
if ((bin_len % 7 == 0) && (unpacked[unpacked_len - 1] == 0x0d))
unpacked_len--;
diff --git a/plugins/huawei/mm-modem-helpers-huawei.c b/plugins/huawei/mm-modem-helpers-huawei.c
index 49f5a6ea..1b443052 100644
--- a/plugins/huawei/mm-modem-helpers-huawei.c
+++ b/plugins/huawei/mm-modem-helpers-huawei.c
@@ -157,14 +157,15 @@ mm_huawei_parse_ndisstatqry_response (const gchar *response,
static gboolean
match_info_to_ip4_addr (GMatchInfo *match_info,
- guint match_index,
- guint *out_addr)
+ guint match_index,
+ guint *out_addr)
{
- gchar *s, *bin = NULL;
- gchar buf[9];
- gsize len, bin_len;
- gboolean success = FALSE;
- guint32 aux;
+ g_autofree gchar *s = NULL;
+ g_autofree guint8 *bin = NULL;
+ gchar buf[9];
+ gsize len;
+ gsize bin_len;
+ guint32 aux;
s = g_match_info_fetch (match_info, match_index);
g_return_val_if_fail (s != NULL, FALSE);
@@ -172,11 +173,11 @@ match_info_to_ip4_addr (GMatchInfo *match_info,
len = strlen (s);
if (len == 1 && s[0] == '0') {
*out_addr = 0;
- success = TRUE;
- goto done;
+ return TRUE;
}
+
if (len < 7 || len > 8)
- goto done;
+ return FALSE;
/* Handle possibly missing leading zero */
memset (buf, 0, sizeof (buf));
@@ -190,16 +191,11 @@ match_info_to_ip4_addr (GMatchInfo *match_info,
bin = mm_utils_hexstr2bin (buf, -1, &bin_len, NULL);
if (!bin || bin_len != 4)
- goto done;
+ return FALSE;
memcpy (&aux, bin, 4);
*out_addr = GUINT32_SWAP_LE_BE (aux);
- success = TRUE;
-
-done:
- g_free (s);
- g_free (bin);
- return success;
+ return TRUE;
}
gboolean