From e5dff20ff5bfd3052c190374315d21ed8d7eda78 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Wed, 10 Mar 2010 12:53:09 -0600 Subject: Refactor: Update the subaddress structure --- src/stkutil.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/stkutil.c') 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; -- cgit v1.2.3