aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libmm-glib/mm-common-helpers.c9
-rw-r--r--libmm-glib/mm-common-helpers.h2
-rw-r--r--plugins/altair/mm-modem-helpers-altair-lte.c2
-rw-r--r--plugins/huawei/mm-broadband-modem-huawei.c2
-rw-r--r--plugins/huawei/mm-modem-helpers-huawei.c2
-rw-r--r--src/mm-base-sim.c4
-rw-r--r--src/mm-charsets.c2
-rw-r--r--src/mm-modem-helpers-qmi.c2
-rw-r--r--src/mm-modem-helpers.c2
-rw-r--r--src/mm-sms-part-3gpp.c2
-rw-r--r--src/mm-sms-part-cdma.c2
11 files changed, 16 insertions, 15 deletions
diff --git a/libmm-glib/mm-common-helpers.c b/libmm-glib/mm-common-helpers.c
index b443f1ab..3a97e3be 100644
--- a/libmm-glib/mm-common-helpers.c
+++ b/libmm-glib/mm-common-helpers.c
@@ -1688,6 +1688,7 @@ mm_utils_hex2byte (const gchar *hex)
gchar *
mm_utils_hexstr2bin (const gchar *hex,
+ gssize len,
gsize *out_len,
GError **error)
{
@@ -1695,10 +1696,10 @@ mm_utils_hexstr2bin (const gchar *hex,
g_autofree gchar *buf = NULL;
gsize i;
gint a;
- gchar *opos;
- gsize len;
-
- len = strlen (hex);
+ gchar *opos
+;
+ if (len < 0)
+ len = strlen (hex);
/* Length must be a multiple of 2 */
if ((len % 2) != 0) {
diff --git a/libmm-glib/mm-common-helpers.h b/libmm-glib/mm-common-helpers.h
index d3cf62d7..50d58134 100644
--- a/libmm-glib/mm-common-helpers.h
+++ b/libmm-glib/mm-common-helpers.h
@@ -181,7 +181,7 @@ gchar *mm_get_string_unquoted_from_match_info (GMatchInfo *match_info,
const gchar *mm_sms_delivery_state_get_string_extended (guint delivery_state);
gint mm_utils_hex2byte (const gchar *hex);
-gchar *mm_utils_hexstr2bin (const gchar *hex, gsize *out_len, GError **error);
+gchar *mm_utils_hexstr2bin (const gchar *hex, gssize len, gsize *out_len, GError **error);
gchar *mm_utils_bin2hexstr (const guint8 *bin, gsize len);
gboolean mm_utils_ishexstr (const gchar *hex);
diff --git a/plugins/altair/mm-modem-helpers-altair-lte.c b/plugins/altair/mm-modem-helpers-altair-lte.c
index 6d218800..b71b458a 100644
--- a/plugins/altair/mm-modem-helpers-altair-lte.c
+++ b/plugins/altair/mm-modem-helpers-altair-lte.c
@@ -210,7 +210,7 @@ mm_altair_parse_vendor_pco_info (const gchar *pco_info, GError **error)
break;
}
- pco_payload_bytes = mm_utils_hexstr2bin (pco_payload, &pco_payload_bytes_len, error);
+ pco_payload_bytes = mm_utils_hexstr2bin (pco_payload, -1, &pco_payload_bytes_len, error);
if (!pco_payload_bytes) {
g_prefix_error (error, "Invalid PCO payload from PCO info '%s': ", pco_info);
break;
diff --git a/plugins/huawei/mm-broadband-modem-huawei.c b/plugins/huawei/mm-broadband-modem-huawei.c
index aec926c1..feaabd46 100644
--- a/plugins/huawei/mm-broadband-modem-huawei.c
+++ b/plugins/huawei/mm-broadband-modem-huawei.c
@@ -2335,7 +2335,7 @@ decode (MMIfaceModem3gppUssd *self,
gsize bin_len = 0;
guint32 unpacked_len;
- bin = mm_utils_hexstr2bin (reply, &bin_len, error);
+ bin = mm_utils_hexstr2bin (reply, -1, &bin_len, error);
if (!bin)
return NULL;
diff --git a/plugins/huawei/mm-modem-helpers-huawei.c b/plugins/huawei/mm-modem-helpers-huawei.c
index 1f9fe363..49f5a6ea 100644
--- a/plugins/huawei/mm-modem-helpers-huawei.c
+++ b/plugins/huawei/mm-modem-helpers-huawei.c
@@ -188,7 +188,7 @@ match_info_to_ip4_addr (GMatchInfo *match_info,
else
g_assert_not_reached ();
- bin = mm_utils_hexstr2bin (buf, &bin_len, NULL);
+ bin = mm_utils_hexstr2bin (buf, -1, &bin_len, NULL);
if (!bin || bin_len != 4)
goto done;
diff --git a/src/mm-base-sim.c b/src/mm-base-sim.c
index 95273292..78ffdc62 100644
--- a/src/mm-base-sim.c
+++ b/src/mm-base-sim.c
@@ -1311,7 +1311,7 @@ parse_mnc_length (const gchar *response,
g_autofree gchar *bin = NULL;
/* Convert hex string to binary */
- bin = mm_utils_hexstr2bin (hex, &buflen, error);
+ bin = mm_utils_hexstr2bin (hex, -1, &buflen, error);
if (!bin) {
g_prefix_error (error, "SIM returned malformed response '%s': ", hex);
return 0;
@@ -1416,7 +1416,7 @@ parse_spn (const gchar *response,
g_autofree gchar *bin = NULL;
/* Convert hex string to binary */
- bin = mm_utils_hexstr2bin (hex, &buflen, error);
+ bin = mm_utils_hexstr2bin (hex, -1, &buflen, error);
if (!bin) {
g_prefix_error (error, "SIM returned malformed response '%s': ", hex);
return NULL;
diff --git a/src/mm-charsets.c b/src/mm-charsets.c
index f51e92bb..adc80332 100644
--- a/src/mm-charsets.c
+++ b/src/mm-charsets.c
@@ -169,7 +169,7 @@ mm_modem_charset_hex_to_utf8 (const gchar *src,
iconv_from = charset_iconv_from (charset);
g_return_val_if_fail (iconv_from != NULL, FALSE);
- unconverted = mm_utils_hexstr2bin (src, &unconverted_len, NULL);
+ unconverted = mm_utils_hexstr2bin (src, -1, &unconverted_len, NULL);
if (!unconverted)
return NULL;
diff --git a/src/mm-modem-helpers-qmi.c b/src/mm-modem-helpers-qmi.c
index 4180a268..6820419e 100644
--- a/src/mm-modem-helpers-qmi.c
+++ b/src/mm-modem-helpers-qmi.c
@@ -1815,7 +1815,7 @@ mm_firmware_unique_id_to_qmi_unique_id (const gchar *unique_id,
gsize tmp_len;
tmp_len = 0;
- tmp = (guint8 *) mm_utils_hexstr2bin (unique_id, &tmp_len, error);
+ tmp = (guint8 *) mm_utils_hexstr2bin (unique_id, -1, &tmp_len, error);
if (!tmp) {
g_prefix_error (error, "Unexpected character found in unique id: ");
return NULL;
diff --git a/src/mm-modem-helpers.c b/src/mm-modem-helpers.c
index a2fb07fa..5baaef09 100644
--- a/src/mm-modem-helpers.c
+++ b/src/mm-modem-helpers.c
@@ -4291,7 +4291,7 @@ mm_3gpp_parse_emergency_numbers (const char *raw, GError **error)
return NULL;
}
- bin = (guint8 *) mm_utils_hexstr2bin (raw, &binlen, error);
+ bin = (guint8 *) mm_utils_hexstr2bin (raw, -1, &binlen, error);
if (!bin) {
g_prefix_error (error, "invalid raw emergency numbers list contents: ");
return NULL;
diff --git a/src/mm-sms-part-3gpp.c b/src/mm-sms-part-3gpp.c
index bc4310ee..cdf9a1a0 100644
--- a/src/mm-sms-part-3gpp.c
+++ b/src/mm-sms-part-3gpp.c
@@ -343,7 +343,7 @@ mm_sms_part_3gpp_new_from_pdu (guint index,
gsize pdu_len;
/* Convert PDU from hex to binary */
- pdu = (guint8 *) mm_utils_hexstr2bin (hexpdu, &pdu_len, error);
+ pdu = (guint8 *) mm_utils_hexstr2bin (hexpdu, -1, &pdu_len, error);
if (!pdu) {
g_prefix_error (error, "Couldn't convert 3GPP PDU from hex to binary: ");
return NULL;
diff --git a/src/mm-sms-part-cdma.c b/src/mm-sms-part-cdma.c
index 39e2cc2f..4275cb8d 100644
--- a/src/mm-sms-part-cdma.c
+++ b/src/mm-sms-part-cdma.c
@@ -321,7 +321,7 @@ mm_sms_part_cdma_new_from_pdu (guint index,
gsize pdu_len;
/* Convert PDU from hex to binary */
- pdu = (guint8 *) mm_utils_hexstr2bin (hexpdu, &pdu_len, error);
+ pdu = (guint8 *) mm_utils_hexstr2bin (hexpdu, -1, &pdu_len, error);
if (!pdu) {
g_prefix_error (error, "Couldn't convert CDMA PDU from hex to binary: ");
return NULL;