summaryrefslogtreecommitdiff
path: root/src/stkutil.c
diff options
context:
space:
mode:
authorGuillaume Lucas <guillaumex.lucas@intel.com>2010-12-07 10:58:47 +0000
committerDenis Kenzior <denkenz@gmail.com>2010-12-10 10:46:56 -0600
commit778302a1e58dcbbcf1d47607f28d1b112b96caea (patch)
tree89a1e2bdb71ed131cb2fec5a8253be853fbf6d88 /src/stkutil.c
parenta437bfba549278f94288870ce812bf11c54a7c07 (diff)
downloadofono-778302a1e58dcbbcf1d47607f28d1b112b96caea.tar.gz
stkutil: fix crash cause by null text string
According to 3GPP TS 31.124 a zero length for the text string should be allowed. An empty string must be returned to the user in this case.
Diffstat (limited to 'src/stkutil.c')
-rw-r--r--src/stkutil.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/stkutil.c b/src/stkutil.c
index 01a00212..63da0415 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -562,7 +562,7 @@ static gboolean parse_dataobj_text(struct comprehension_tlv_iter *iter,
{
char **text = user;
unsigned int len = comprehension_tlv_iter_get_length(iter);
- const unsigned char *data = comprehension_tlv_iter_get_data(iter);
+ const unsigned char *data;
char *utf8;
/* DCS followed by some text, cannot be 1 */
@@ -570,10 +570,12 @@ static gboolean parse_dataobj_text(struct comprehension_tlv_iter *iter,
return FALSE;
if (len == 0) {
- *text = NULL;
+ *text = g_try_malloc0(1);
return TRUE;
}
+ data = comprehension_tlv_iter_get_data(iter);
+
utf8 = decode_text(data[0], len - 1, data + 1);
if (utf8 == NULL)