Message ID | 1426776830-31961-1-git-send-email-thuth@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
Stumbled over this while throwing out old mail. Copying Marc-André and Jeremy. Thomas Huth <thuth@linux.vnet.ibm.com> writes: > 'smatch' complains about two bugs and one style issue in card_7816.c: > > libcacard/card_7816.c:273 vcard_apdu_set_length() warn: should this be a bitwise op? > libcacard/card_7816.c:295 vcard_apdu_set_length() warn: should this be a bitwise op? > libcacard/card_7816.c:661 vcard7816_vm_process_apdu() warn: inconsistent indenting > > ... and indeed, the code seems to be wrong here. Let's fix this > by using a bitwise OR instead of logical OR and by indenting > the code with the right level. > > Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com> > --- > Please note that this is compile-tested only. I don't have a clue > about that libcacard stuff, so if you feel confident in this area, > please have a look whether this change really makes sense. > --- > libcacard/card_7816.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/libcacard/card_7816.c b/libcacard/card_7816.c > index 814fa16..0f7a006 100644 > --- a/libcacard/card_7816.c > +++ b/libcacard/card_7816.c > @@ -270,7 +270,7 @@ vcard_apdu_set_length(VCardAPDU *apdu) > } > /* calculate the first extended value. Could be either Le or Lc */ > Le = (apdu->a_header->ah_body[0] << 8) > - || apdu->a_header->ah_body[1]; > + | apdu->a_header->ah_body[1]; > if (L == 3) { > /* 2E extended, return data only */ > /* zero maps to 65536 */ > @@ -292,7 +292,7 @@ vcard_apdu_set_length(VCardAPDU *apdu) > if (L == Le+5) { > /* 4E extended, parameters and return data */ > Le = (apdu->a_data[apdu->a_len-2] << 8) > - || apdu->a_data[apdu->a_len-1]; > + | apdu->a_data[apdu->a_len-1]; > apdu->a_Le = Le ? Le : 65536; > return VCARD7816_STATUS_SUCCESS; > } > @@ -657,7 +657,7 @@ vcard7816_vm_process_apdu(VCard *card, VCardAPDU *apdu, > } > } > } else { > - status = vcard_emul_login(card, apdu->a_body, apdu->a_Lc); > + status = vcard_emul_login(card, apdu->a_body, apdu->a_Lc); > *response = vcard_make_response(status); > } > }
Hi On Mon, Sep 14, 2015 at 2:11 PM, Markus Armbruster <armbru@redhat.com> wrote: > Stumbled over this while throwing out old mail. Copying Marc-André and > Jeremy. > Thanks, the patch is applied in my libcacard "next" branch (https://github.com/elmarco/libcacard/tree/next). > Thomas Huth <thuth@linux.vnet.ibm.com> writes: > >> 'smatch' complains about two bugs and one style issue in card_7816.c: >> >> libcacard/card_7816.c:273 vcard_apdu_set_length() warn: should this be a bitwise op? >> libcacard/card_7816.c:295 vcard_apdu_set_length() warn: should this be a bitwise op? >> libcacard/card_7816.c:661 vcard7816_vm_process_apdu() warn: inconsistent indenting >> >> ... and indeed, the code seems to be wrong here. Let's fix this >> by using a bitwise OR instead of logical OR and by indenting >> the code with the right level. >> >> Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com> >> --- >> Please note that this is compile-tested only. I don't have a clue >> about that libcacard stuff, so if you feel confident in this area, >> please have a look whether this change really makes sense. >> --- >> libcacard/card_7816.c | 6 +++--- >> 1 files changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/libcacard/card_7816.c b/libcacard/card_7816.c >> index 814fa16..0f7a006 100644 >> --- a/libcacard/card_7816.c >> +++ b/libcacard/card_7816.c >> @@ -270,7 +270,7 @@ vcard_apdu_set_length(VCardAPDU *apdu) >> } >> /* calculate the first extended value. Could be either Le or Lc */ >> Le = (apdu->a_header->ah_body[0] << 8) >> - || apdu->a_header->ah_body[1]; >> + | apdu->a_header->ah_body[1]; >> if (L == 3) { >> /* 2E extended, return data only */ >> /* zero maps to 65536 */ >> @@ -292,7 +292,7 @@ vcard_apdu_set_length(VCardAPDU *apdu) >> if (L == Le+5) { >> /* 4E extended, parameters and return data */ >> Le = (apdu->a_data[apdu->a_len-2] << 8) >> - || apdu->a_data[apdu->a_len-1]; >> + | apdu->a_data[apdu->a_len-1]; >> apdu->a_Le = Le ? Le : 65536; >> return VCARD7816_STATUS_SUCCESS; >> } >> @@ -657,7 +657,7 @@ vcard7816_vm_process_apdu(VCard *card, VCardAPDU *apdu, >> } >> } >> } else { >> - status = vcard_emul_login(card, apdu->a_body, apdu->a_Lc); >> + status = vcard_emul_login(card, apdu->a_body, apdu->a_Lc); >> *response = vcard_make_response(status); >> } >> }
Marc-André Lureau <marcandre.lureau@gmail.com> writes: > Hi > > On Mon, Sep 14, 2015 at 2:11 PM, Markus Armbruster <armbru@redhat.com> wrote: >> Stumbled over this while throwing out old mail. Copying Marc-André and >> Jeremy. >> > > Thanks, the patch is applied in my libcacard "next" branch > (https://github.com/elmarco/libcacard/tree/next). Copying Thomas at his current e-mail address.
diff --git a/libcacard/card_7816.c b/libcacard/card_7816.c index 814fa16..0f7a006 100644 --- a/libcacard/card_7816.c +++ b/libcacard/card_7816.c @@ -270,7 +270,7 @@ vcard_apdu_set_length(VCardAPDU *apdu) } /* calculate the first extended value. Could be either Le or Lc */ Le = (apdu->a_header->ah_body[0] << 8) - || apdu->a_header->ah_body[1]; + | apdu->a_header->ah_body[1]; if (L == 3) { /* 2E extended, return data only */ /* zero maps to 65536 */ @@ -292,7 +292,7 @@ vcard_apdu_set_length(VCardAPDU *apdu) if (L == Le+5) { /* 4E extended, parameters and return data */ Le = (apdu->a_data[apdu->a_len-2] << 8) - || apdu->a_data[apdu->a_len-1]; + | apdu->a_data[apdu->a_len-1]; apdu->a_Le = Le ? Le : 65536; return VCARD7816_STATUS_SUCCESS; } @@ -657,7 +657,7 @@ vcard7816_vm_process_apdu(VCard *card, VCardAPDU *apdu, } } } else { - status = vcard_emul_login(card, apdu->a_body, apdu->a_Lc); + status = vcard_emul_login(card, apdu->a_body, apdu->a_Lc); *response = vcard_make_response(status); } }
'smatch' complains about two bugs and one style issue in card_7816.c: libcacard/card_7816.c:273 vcard_apdu_set_length() warn: should this be a bitwise op? libcacard/card_7816.c:295 vcard_apdu_set_length() warn: should this be a bitwise op? libcacard/card_7816.c:661 vcard7816_vm_process_apdu() warn: inconsistent indenting ... and indeed, the code seems to be wrong here. Let's fix this by using a bitwise OR instead of logical OR and by indenting the code with the right level. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com> --- Please note that this is compile-tested only. I don't have a clue about that libcacard stuff, so if you feel confident in this area, please have a look whether this change really makes sense. --- libcacard/card_7816.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)