Fix: Tweak the language parser
authorDenis Kenzior <denkenz@gmail.com>
Fri, 2 Apr 2010 16:19:03 +0000 (11:19 -0500)
committerDenis Kenzior <denkenz@gmail.com>
Fri, 2 Apr 2010 16:19:03 +0000 (11:19 -0500)
src/stkutil.c

index 9ba7fa0..8e56972 100644 (file)
@@ -979,7 +979,7 @@ static gboolean parse_dataobj_dtmf_string(struct comprehension_tlv_iter *iter,
 static gboolean parse_dataobj_language(struct comprehension_tlv_iter *iter,
                                        void *user)
 {
-       char **lang = user;
+       char *lang = user;
        const unsigned char *data;
        unsigned int len = comprehension_tlv_iter_get_length(iter);
 
@@ -988,7 +988,14 @@ static gboolean parse_dataobj_language(struct comprehension_tlv_iter *iter,
 
        data = comprehension_tlv_iter_get_data(iter);
 
-       memcpy(*lang, data, len);
+       /*
+        * This is a 2 character pair as defined in ISO 639, coded using
+        * GSM default 7 bit alphabet with bit 8 set to 0.  Since the english
+        * letters have the same mapping in GSM as ASCII, no conversion
+        * is required here
+        */
+       memcpy(lang, data, len);
+       lang[len] = '\0';
 
        return TRUE;
 }