aboutsummaryrefslogtreecommitdiffstats
path: root/src/sim/reader.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim/reader.c')
-rw-r--r--src/sim/reader.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/sim/reader.c b/src/sim/reader.c
index 71fb763d..5d6033bf 100644
--- a/src/sim/reader.c
+++ b/src/sim/reader.c
@@ -27,11 +27,15 @@
#include <string.h>
#include <stdio.h>
+#include <netinet/in.h>
+
+#include <osmocom/core/msgb.h>
#include <osmocom/sim/sim.h>
#include "sim_int.h"
+/* remove the SW from end of the message */
static int get_sw(struct msgb *resp)
{
int ret;
@@ -39,8 +43,7 @@ static int get_sw(struct msgb *resp)
if (!msgb_apdu_de(resp) || msgb_apdu_le(resp) < 2)
return -EIO;
- ret = resp->data[resp->len-2] << 8;
- ret |= resp->data[resp->len-1];
+ ret = msgb_get_u16(resp);
return ret;
}