diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-03-10 12:53:09 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-03-15 21:02:06 -0500 |
commit | e5dff20ff5bfd3052c190374315d21ed8d7eda78 (patch) | |
tree | db4b9c50641cf75a84f670cc95ec5ab358572938 /src/stkutil.c | |
parent | bbf67bd4a0cf7124d8da9712f44670a1acaf2d08 (diff) | |
download | ofono-e5dff20ff5bfd3052c190374315d21ed8d7eda78.tar.bz2 |
Refactor: Update the subaddress structure
Diffstat (limited to 'src/stkutil.c')
-rw-r--r-- | src/stkutil.c | 10 |
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; |