[PATCH] mbimcli: use g_strfreev instead of g_free to free g_strsplit results

Ben Chan benchan at chromium.org
Mon Feb 24 09:12:57 PST 2014


This patch modifies set_pin_input_parse and set_connect_activate_parse
in mbimcli-basic-connect.c to duplicate the strings in a string array,
before returning them to the caller, so that the string array can be
properly freed with g_strfreev.
---
 src/mbimcli/mbimcli-basic-connect.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/src/mbimcli/mbimcli-basic-connect.c b/src/mbimcli/mbimcli-basic-connect.c
index 97368aa..b97154c 100644
--- a/src/mbimcli/mbimcli-basic-connect.c
+++ b/src/mbimcli/mbimcli-basic-connect.c
@@ -639,10 +639,10 @@ set_pin_input_parse (guint         n_expected,
         return FALSE;
     }
 
-    *pin = split[0];
-    *new_pin = split[1] ? split[1] : NULL;
+    *pin = g_strdup (split[0]);
+    *new_pin = g_strdup (split[1]);
 
-    g_free (split);
+    g_strfreev (split);
     return TRUE;
 }
 
@@ -756,7 +756,7 @@ set_connect_activate_parse (const gchar       *str,
     }
 
     /* APN */
-    *apn = split[0];
+    *apn = g_strdup (split[0]);
 
     /* Some defaults */
     *auth_protocol = MBIM_AUTH_PROTOCOL_NONE;
@@ -776,15 +776,14 @@ set_connect_activate_parse (const gchar       *str,
 
         /* Username */
         if (split[2]) {
-            *username = split[2];
+            *username = g_strdup (split[2]);
 
             /* Password */
-            if (split[3])
-                *password = split[3];
+            *password = g_strdup (split[3]);
         }
     }
 
-    g_free (split);
+    g_strfreev (split);
     return TRUE;
 }
 
-- 
1.9.0.rc1.175.g0b1dcb5



More information about the libmbim-devel mailing list