]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
OPENZAP-240 #resolve [GSM module uses incorrect length when parsing AT responses]
authorMoises Silva <moy@sangoma.com>
Mon, 9 Nov 2015 04:12:41 +0000 (22:12 -0600)
committerMoises Silva <moy@sangoma.com>
Mon, 9 Nov 2015 04:12:41 +0000 (22:12 -0600)
Use the buffer length returned by the driver instead of trying to use strlen()

libs/freetdm/src/ftmod/ftmod_gsm/ftmod_gsm.c

index 152ff0452e5308d3afe8278c682e3a0e92382967..86ea231708b56dfd16ca81c4e6505204fdaee90c 100755 (executable)
@@ -1086,12 +1086,11 @@ static void *ftdm_gsm_run(ftdm_thread_t *me, void *obj)
                ftdm_channel_lock(gsm_data->bchan);
                ftdm_channel_advance_states(gsm_data->bchan);
                if (FTDM_SUCCESS == status && (flags & FTDM_READ)) {
-                       int n = 0, m = 0;
-
+                       int n = 0;
                        n = read_channel(gsm_data->dchan, buffer, sizeof(buffer) - 1);
                        if (n > 0) {
-                               m = strlen(buffer); /* TODO: Hum? is this needed? why not using the return val from read_channel? */
-                               wat_span_process_read(span->span_id, buffer, m);
+                               wat_span_process_read(span->span_id, buffer, n);
+                               buffer[0] = 0;
                        }
                }
                ftdm_channel_advance_states(gsm_data->bchan);