summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-03-16 17:40:44 -0500
committerDenis Kenzior <denkenz@gmail.com>2010-03-16 17:42:08 -0500
commite246b414c9c10e24c0b563e13ac230da2a3812cf (patch)
treecbdcd095cc7d6873e9d526164d2edcdb209d4812
parent8987fb696c1ccffd29b333ef89e787237cbbfee7 (diff)
downloadofono-e246b414c9c10e24c0b563e13ac230da2a3812cf.tar.bz2
Fix: Use g_try_malloc when parsing stk address
-rw-r--r--src/stkutil.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/stkutil.c b/src/stkutil.c
index a5c3ac06..afc92d69 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -57,6 +57,7 @@ static gboolean parse_dataobj_address(struct comprehension_tlv_iter *iter,
struct stk_address *addr = user;
const unsigned char *data;
unsigned int len;
+ char *number;
if (comprehension_tlv_iter_get_tag(iter) !=
STK_DATA_OBJECT_TYPE_ADDRESS)
@@ -68,8 +69,12 @@ static gboolean parse_dataobj_address(struct comprehension_tlv_iter *iter,
data = comprehension_tlv_iter_get_data(iter);
+ number = g_try_malloc(len * 2 - 1);
+ if (number == NULL)
+ return FALSE;
+
addr->ton_npi = data[0];
- addr->number = g_malloc(len * 2 - 1);
+ addr->number = number;
extract_bcd_number(data + 1, len - 1, addr->number);
return TRUE;