manager_tone() converts all tone chars to uppercase. Since everywhere we
check for both 'p' and 'P' for a pause, tone_queue() should also check
both before claiming the string is invalid.
---
 src/voicecall.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/voicecall.c b/src/voicecall.c
index cb5258d..4932ffa 100644
--- a/src/voicecall.c
+++ b/src/voicecall.c
@@ -287,8 +287,9 @@ static int tone_queue(struct ofono_voicecall *vc, const 
char *tone_str,
         */
        for (i = 0; tone_str[i]; i++)
                if (!g_ascii_isdigit(tone_str[i]) && tone_str[i] != 'p' &&
-                               tone_str[i] != '*' && tone_str[i] != '#' &&
-                               (tone_str[i] < 'A' || tone_str[i] > 'D'))
+                               tone_str[i] != 'P' && tone_str[i] != '*' &&
+                               tone_str[i] != '#' && (tone_str[i] < 'A' ||
+                               tone_str[i] > 'D'))
                        return -EINVAL;
 
        while ((entry = g_queue_peek_nth(vc->toneq, n++)) != NULL)
-- 
1.7.4.1

_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono

Reply via email to