diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-03-01 18:16:23 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-03-01 18:16:23 -0600 |
commit | b06cce24d817d971149512f3c0249c85731c523a (patch) | |
tree | 0189cecfdef44122b02c67d69d6acc00d27170cd /src | |
parent | ccb37262f59df982aee5f8bfa3f9058bca522e6b (diff) | |
download | ofono-b06cce24d817d971149512f3c0249c85731c523a.tar.bz2 |
stk: Validate src/dst combination
Diffstat (limited to 'src')
-rw-r--r-- | src/stkutil.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/stkutil.c b/src/stkutil.c index 39eb54a2..337868be 100644 --- a/src/stkutil.c +++ b/src/stkutil.c @@ -347,6 +347,12 @@ static gboolean parse_display_text(struct stk_command *command, struct stk_command_display_text *obj = &command->display_text; gboolean ret; + if (command->src != STK_DEVICE_IDENTITY_TYPE_UICC) + return FALSE; + + if (command->dst != STK_DEVICE_IDENTITY_TYPE_DISPLAY) + return FALSE; + obj->frame_id = 0xFF; ret = parse_dataobj(iter, STK_DATA_OBJECT_TYPE_TEXT, @@ -383,6 +389,12 @@ static gboolean parse_get_inkey(struct stk_command *command, struct stk_command_display_text *obj = &command->get_inkey; gboolean ret; + if (command->src != STK_DEVICE_IDENTITY_TYPE_UICC) + return FALSE; + + if (command->dst != STK_DEVICE_IDENTITY_TYPE_TERMINAL) + return FALSE; + obj->frame_id = 0xFF; ret = parse_dataobj(iter, STK_DATA_OBJECT_TYPE_TEXT, @@ -421,6 +433,12 @@ static gboolean parse_get_input(struct stk_command *command, obj->frame_id = 0xFF; + if (command->src != STK_DEVICE_IDENTITY_TYPE_UICC) + return FALSE; + + if (command->dst != STK_DEVICE_IDENTITY_TYPE_TERMINAL) + return FALSE; + ret = parse_dataobj(iter, STK_DATA_OBJECT_TYPE_TEXT, DATAOBJ_FLAG_MANDATORY | DATAOBJ_FLAG_MINIMUM, &obj->text, |