From a5c9255baa0dd97b564ea8d44444ac80c38153b9 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 10 Sep 2012 21:05:42 +0200 Subject: sim: strip the SW from the returned data, as SW is passed in msgb->cb --- src/sim/reader.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src') 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 #include +#include + +#include #include #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; } -- cgit v1.2.3