summaryrefslogtreecommitdiffstats
path: root/src/stkutil.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-03-10 12:53:09 -0600
committerDenis Kenzior <denkenz@gmail.com>2010-03-15 21:02:06 -0500
commite5dff20ff5bfd3052c190374315d21ed8d7eda78 (patch)
treedb4b9c50641cf75a84f670cc95ec5ab358572938 /src/stkutil.c
parentbbf67bd4a0cf7124d8da9712f44670a1acaf2d08 (diff)
downloadofono-e5dff20ff5bfd3052c190374315d21ed8d7eda78.tar.bz2
Refactor: Update the subaddress structure
Diffstat (limited to 'src/stkutil.c')
-rw-r--r--src/stkutil.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/stkutil.c b/src/stkutil.c
index d5d963f7..136efd59 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -95,8 +95,8 @@ static gboolean parse_dataobj_alpha_id(struct comprehension_tlv_iter *iter,
}
/* Defined in TS 102.223 Section 8.3 */
-static gboolean parse_dataobj_subaddress(
- struct comprehension_tlv_iter *iter, void *user)
+static gboolean parse_dataobj_subaddress(struct comprehension_tlv_iter *iter,
+ void *user)
{
struct stk_subaddress *subaddr = user;
const unsigned char *data;
@@ -110,9 +110,11 @@ static gboolean parse_dataobj_subaddress(
if (len < 1)
return FALSE;
+ if (len > sizeof(subaddr->subaddr))
+ return FALSE;
+
data = comprehension_tlv_iter_get_data(iter);
- subaddr->subaddr_len = len;
- subaddr->subaddr = g_malloc(len);
+ subaddr->len = len;
memcpy(subaddr->subaddr, data, len);
return TRUE;