qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH] libcacard: Fix bug detected with 'smatch'


From: Markus Armbruster
Subject: Re: [Qemu-devel] [RFC PATCH] libcacard: Fix bug detected with 'smatch'
Date: Mon, 14 Sep 2015 14:11:08 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Stumbled over this while throwing out old mail.  Copying Marc-André and
Jeremy.

Thomas Huth <address@hidden> 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 <address@hidden>
> ---
> 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);
>              }
>          }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]