From bbf67bd4a0cf7124d8da9712f44670a1acaf2d08 Mon Sep 17 00:00:00 2001 From: Denis Kenzior Date: Wed, 10 Mar 2010 11:26:18 -0600 Subject: [PATCH] Refactor: stk alpha identifier object Style issues, we must also return FALSE in case conversion fails --- src/stkutil.c | 18 ++++++++++++------ src/stkutil.h | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/stkutil.c b/src/stkutil.c index a270282..d5d963f 100644 --- a/src/stkutil.c +++ b/src/stkutil.c @@ -67,15 +67,16 @@ static gboolean parse_dataobj_address(struct comprehension_tlv_iter *iter, } /* Defined in TS 102.223 Section 8.2 */ -static gboolean parse_dataobj_alpha_identifier( - struct comprehension_tlv_iter *iter, void *user) +static gboolean parse_dataobj_alpha_id(struct comprehension_tlv_iter *iter, + void *user) { char **alpha_id = user; const unsigned char *data; unsigned int len; + char *utf8; if (comprehension_tlv_iter_get_tag(iter) != - STK_DATA_OBJECT_TYPE_ALPHA_IDENTIFIER) + STK_DATA_OBJECT_TYPE_ALPHA_ID) return FALSE; len = comprehension_tlv_iter_get_length(iter); @@ -83,7 +84,12 @@ static gboolean parse_dataobj_alpha_identifier( return FALSE; data = comprehension_tlv_iter_get_data(iter); - *alpha_id = sim_string_to_utf8(data, len); + utf8 = sim_string_to_utf8(data, len); + + if (utf8 == NULL) + return FALSE; + + *alpha_id = utf8; return TRUE; } @@ -471,8 +477,8 @@ static dataobj_handler handler_for_type(enum stk_data_object_type type) switch (type) { case STK_DATA_OBJECT_TYPE_ADDRESS: return parse_dataobj_address; - case STK_DATA_OBJECT_TYPE_ALPHA_IDENTIFIER: - return parse_dataobj_alpha_identifier; + case STK_DATA_OBJECT_TYPE_ALPHA_ID: + return parse_dataobj_alpha_id; case STK_DATA_OBJECT_TYPE_SUBADDRESS: return parse_dataobj_subaddress; case STK_DATA_OBJECT_TYPE_CAPABILITY_CONFIGURATION_PARAMETERS: diff --git a/src/stkutil.h b/src/stkutil.h index 7acf3fa..b67bbef 100644 --- a/src/stkutil.h +++ b/src/stkutil.h @@ -85,7 +85,7 @@ enum stk_data_object_type { STK_DATA_OBJECT_TYPE_DEVICE_IDENTITIES = 0x02, STK_DATA_OBJECT_TYPE_RESULT = 0x03, STK_DATA_OBJECT_TYPE_DURATION = 0x04, - STK_DATA_OBJECT_TYPE_ALPHA_IDENTIFIER = 0x05, + STK_DATA_OBJECT_TYPE_ALPHA_ID = 0x05, STK_DATA_OBJECT_TYPE_ADDRESS = 0x06, STK_DATA_OBJECT_TYPE_CAPABILITY_CONFIGURATION_PARAMETERS = 0x07, STK_DATA_OBJECT_TYPE_SUBADDRESS = 0x08, -- 2.7.4