From 18a7d9da7a810dcfe22f810e318f1c6fe34c6e03 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Wed, 22 Apr 2020 15:49:05 +0200 Subject: broadband-modem-qmi: GByteArray can be casted to GArray in USSD encoding Reported by: Maxim Anisimov --- src/mm-broadband-modem-qmi.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/mm-broadband-modem-qmi.c b/src/mm-broadband-modem-qmi.c index a550072b..648bf1a5 100644 --- a/src/mm-broadband-modem-qmi.c +++ b/src/mm-broadband-modem-qmi.c @@ -7184,11 +7184,14 @@ ussd_encode (const gchar *command, command_len = strlen (command); if (g_str_is_ascii (command)) { + barray = g_byte_array_sized_new (command_len); + g_byte_array_append (barray, (const guint8 *)command, command_len); + *scheme = QMI_VOICE_USS_DATA_CODING_SCHEME_ASCII; - return g_array_append_vals (g_array_sized_new (FALSE, FALSE, 1, command_len), command, command_len); + return (GArray *) g_steal_pointer (&barray); } - barray = g_byte_array_sized_new (strlen (command) * 2); + barray = g_byte_array_sized_new (command_len * 2); if (!mm_modem_charset_byte_array_append (barray, command, FALSE, MM_MODEM_CHARSET_UCS2, &inner_error)) { g_set_error (error, MM_CORE_ERROR, MM_CORE_ERROR_UNSUPPORTED, "Failed to encode USSD command in UCS2 charset: %s", inner_error->message); @@ -7196,7 +7199,7 @@ ussd_encode (const gchar *command, } *scheme = QMI_VOICE_USS_DATA_CODING_SCHEME_UCS2; - return g_array_append_vals (g_array_sized_new (FALSE, FALSE, 1, barray->len), barray->data, barray->len); + return (GArray *) g_steal_pointer (&barray); } static gchar * -- cgit v1.2.3-70-g09d2