diff options
author | Guillaume Lucas <guillaumex.lucas@intel.com> | 2010-12-07 10:58:47 +0000 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-12-10 10:46:56 -0600 |
commit | 778302a1e58dcbbcf1d47607f28d1b112b96caea (patch) | |
tree | 89a1e2bdb71ed131cb2fec5a8253be853fbf6d88 /src/stkutil.c | |
parent | a437bfba549278f94288870ce812bf11c54a7c07 (diff) | |
download | ofono-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.c | 6 |
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) |