summaryrefslogtreecommitdiffstats
path: root/src/stkutil.c
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-03-01 18:16:23 -0600
committerDenis Kenzior <denkenz@gmail.com>2010-03-01 18:16:23 -0600
commitb06cce24d817d971149512f3c0249c85731c523a (patch)
tree0189cecfdef44122b02c67d69d6acc00d27170cd /src/stkutil.c
parentccb37262f59df982aee5f8bfa3f9058bca522e6b (diff)
downloadofono-b06cce24d817d971149512f3c0249c85731c523a.tar.bz2
stk: Validate src/dst combination
Diffstat (limited to 'src/stkutil.c')
-rw-r--r--src/stkutil.c18
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,