laforge submitted this change.
ccid: Fix CCID RDR_to_PC_Parameters (missing bProtocolNum)
Our RDR_to_PC_Parameters message was broken, as it was missing
the bProtocolNum value after the header. Let's fix that.
Change-Id: I67d5cb876d20b29f4759d5b194606f34b8b966c4
---
M ccid_common/ccid_device.c
M ccid_common/ccid_proto.h
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/ccid_common/ccid_device.c b/ccid_common/ccid_device.c
index bf131a9..8a53860 100644
--- a/ccid_common/ccid_device.c
+++ b/ccid_common/ccid_device.c
@@ -264,11 +264,12 @@
const struct ccid_pars_decoded *dec_par)
{
struct msgb *msg = ccid_msgb_alloc();
- struct ccid_rdr_to_pc_parameters *par =
- (struct ccid_rdr_to_pc_parameters *) msgb_put(msg, sizeof(par->hdr)+sizeof(par->abProtocolData.t0));
+ struct ccid_rdr_to_pc_parameters *par = (struct ccid_rdr_to_pc_parameters *)msgb_put(
+ msg, sizeof(par->hdr) + sizeof(par->bProtocolNum) + sizeof(par->abProtocolData.t0));
uint8_t sts = (cmd_sts & CCID_CMD_STATUS_MASK) | icc_status;
SET_HDR_IN(par, RDR_to_PC_Parameters, slot_nr, seq, sts, err);
+ par->bProtocolNum = CCID_PROTOCOL_NUM_T0;
if (dec_par) {
osmo_store32le(sizeof(par->abProtocolData.t0), &par->hdr.hdr.dwLength);
encode_ccid_pars_t0(&par->abProtocolData.t0, dec_par);
@@ -286,11 +287,12 @@
const struct ccid_pars_decoded *dec_par)
{
struct msgb *msg = ccid_msgb_alloc();
- struct ccid_rdr_to_pc_parameters *par =
- (struct ccid_rdr_to_pc_parameters *) msgb_put(msg, sizeof(par->hdr)+sizeof(par->abProtocolData.t1));
+ struct ccid_rdr_to_pc_parameters *par = (struct ccid_rdr_to_pc_parameters *)msgb_put(
+ msg, sizeof(par->hdr) + sizeof(par->bProtocolNum) + sizeof(par->abProtocolData.t1));
uint8_t sts = (cmd_sts & CCID_CMD_STATUS_MASK) | icc_status;
SET_HDR_IN(par, RDR_to_PC_Parameters, slot_nr, seq, sts, err);
+ par->bProtocolNum = CCID_PROTOCOL_NUM_T1;
if (dec_par) {
osmo_store32le(sizeof(par->abProtocolData.t1), &par->hdr.hdr.dwLength);
encode_ccid_pars_t1(&par->abProtocolData.t1, dec_par);
diff --git a/ccid_common/ccid_proto.h b/ccid_common/ccid_proto.h
index e26a051..ac03938 100644
--- a/ccid_common/ccid_proto.h
+++ b/ccid_common/ccid_proto.h
@@ -333,6 +333,7 @@
/* Section 6.2.3 RDR_to_PC_Parameters */
struct ccid_rdr_to_pc_parameters {
struct ccid_header_in hdr;
+ uint8_t bProtocolNum;
union {
struct ccid_proto_data_t0 t0;
struct ccid_proto_data_t1 t1;
To view, visit change 42157. To unsubscribe, or for help writing mail filters, visit settings.