From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47784) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZbSbN-0005lb-K8 for qemu-devel@nongnu.org; Mon, 14 Sep 2015 08:11:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZbSbH-0007Az-MD for qemu-devel@nongnu.org; Mon, 14 Sep 2015 08:11:17 -0400 Received: from mx1.redhat.com ([209.132.183.28]:57096) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZbSbH-0007Aj-HP for qemu-devel@nongnu.org; Mon, 14 Sep 2015 08:11:11 -0400 From: Markus Armbruster References: <1426776830-31961-1-git-send-email-thuth@linux.vnet.ibm.com> Date: Mon, 14 Sep 2015 14:11:08 +0200 In-Reply-To: <1426776830-31961-1-git-send-email-thuth@linux.vnet.ibm.com> (Thomas Huth's message of "Thu, 19 Mar 2015 15:53:50 +0100") Message-ID: <87zj0pp5er.fsf@blackfin.pond.sub.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [RFC PATCH] libcacard: Fix bug detected with 'smatch' List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Thomas Huth Cc: Jeremy White , =?utf-8?Q?Marc-Andr=C3=A9_Lureau?= , qemu-devel@nongnu.org Stumbled over this while throwing out old mail. Copying Marc-Andr=C3=A9 and Jeremy. Thomas Huth 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 > --- > 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 =3D (apdu->a_header->ah_body[0] << 8) > - || apdu->a_header->ah_body[1]; > + | apdu->a_header->ah_body[1]; > if (L =3D=3D 3) { > /* 2E extended, return data only */ > /* zero maps to 65536 */ > @@ -292,7 +292,7 @@ vcard_apdu_set_length(VCardAPDU *apdu) > if (L =3D=3D Le+5) { > /* 4E extended, parameters and return data */ > Le =3D (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 =3D Le ? Le : 65536; > return VCARD7816_STATUS_SUCCESS; > } > @@ -657,7 +657,7 @@ vcard7816_vm_process_apdu(VCard *card, VCardAPDU *apd= u, > } > } > } else { > - status =3D vcard_emul_login(card, apdu->a_body, apdu= ->a_Lc); > + status =3D vcard_emul_login(card, apdu->a_body, apdu->a_= Lc); > *response =3D vcard_make_response(status); > } > }