From nobody Thu May 2 00:01:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+40387+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40387+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1557453055; cv=none; d=zoho.com; s=zohoarc; b=WUCbEOfgCPSK1B5xGZhgOB1bwe+SwbrYYafhoOFoUTPV3u0/FK9A7ZX4OBYbobLhKEk8k3nZvlU32/Y3NkQrS8rdP0+K7J2noNp0+oxrrIUJWDxVDQnoBi5791BTJ6+3TWto5L29n+BuqAwPb+aKSUKzNTWJhuvyxhgOCMhUAYs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1557453055; h=Content-Transfer-Encoding:Cc:Date:From:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To:ARC-Authentication-Results; bh=cqjSj8cIrXRH7MDF+Llyy2bvGxMFEAagJma4Uq3FFOo=; b=RJ+hqlnbXY95JOEQhYJJLHnktKgRGt7GXYvCQd3Mh5m21cfJivLWdD5fWSgJPya6iLXKWqC9iliF2c+tIF0YYhzTjB2zcDXC6frPHEnYWF4C+N1FuCRGLIQxzOVaQ4GY32PLCByjufZ5HEkVReGmzaFJnCyJ5bUA4TGxm6KeKbk= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+40387+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1557453054965805.6695411224782; Thu, 9 May 2019 18:50:54 -0700 (PDT) Return-Path: X-Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by groups.io with SMTP; Thu, 09 May 2019 18:50:53 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 May 2019 18:50:52 -0700 X-ExtLoop1: 1 X-Received: from fieedk002.ccr.corp.intel.com ([10.239.157.133]) by fmsmga008.fm.intel.com with ESMTP; 09 May 2019 18:50:51 -0700 From: "Zhiguang Liu" To: devel@edk2.groups.io Cc: Bob Feng , Liming Gao Subject: [edk2-devel] [PATCH] BaseTools: Check the fread function and avoid dead loop Date: Fri, 10 May 2019 09:50:32 +0800 Message-Id: <20190510015032.2948-1-zhiguang.liu@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,zhiguang.liu@intel.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1557453054; bh=36yAi6p4hlR4Ylz019g0C836K0pjKge4gU6qbO9yfyY=; h=Cc:Date:From:Reply-To:Subject:To; b=DVnR8D/01Xp1fI4/N2RVNl1IMbwQ8HH5nmBT1wcr4E2LrI0F2uD3PzN3FqUV/AloPhq CgAej0/G9VEcRsyXq2V83jYHeu+wSPIWcaUzzJy0JHpu9iHcs+1e8Ddc22/H/GL4q2phG nR9FiifSPvryoSDAvKVGcjyLmnFnBS8d3SU= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D1789 If the input file is not a valid file, it may cause dead loop, because the return of fread function is not checked. Signed-off-by: Zhiguang Liu Cc: Bob Feng Cc: Liming Gao Reviewed-by: Bob Feng --- BaseTools/Source/C/VolInfo/VolInfo.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/BaseTools/Source/C/VolInfo/VolInfo.c b/BaseTools/Source/C/VolI= nfo/VolInfo.c index d8216c61e8..ffe0b47f03 100644 --- a/BaseTools/Source/C/VolInfo/VolInfo.c +++ b/BaseTools/Source/C/VolInfo/VolInfo.c @@ -751,6 +751,7 @@ Returns: UINTN Signature[2]; UINTN BytesRead; UINT32 Size; + size_t ReadSize; =20 BytesRead =3D 0; Size =3D 0; @@ -764,7 +765,10 @@ Returns: // // Read the header // - fread (&VolumeHeader, sizeof (EFI_FIRMWARE_VOLUME_HEADER) - sizeof (EFI_= FV_BLOCK_MAP_ENTRY), 1, InputFile); + ReadSize =3D fread (&VolumeHeader, sizeof (EFI_FIRMWARE_VOLUME_HEADER) -= sizeof (EFI_FV_BLOCK_MAP_ENTRY), 1, InputFile); + if (ReadSize !=3D 1) { + return EFI_ABORTED; + } BytesRead =3D sizeof (EFI_FIRMWARE_VOLUME_HEADER) - sizeof (EFI_FV_B= LOCK_MAP_ENTRY); Signature[0] =3D VolumeHeader.Signature; Signature[1] =3D 0; @@ -1053,7 +1057,10 @@ Returns: printf ("Revision: 0x%04X\n", VolumeHeader.Revision); =20 do { - fread (&BlockMap, sizeof (EFI_FV_BLOCK_MAP_ENTRY), 1, InputFile); + ReadSize =3D fread (&BlockMap, sizeof (EFI_FV_BLOCK_MAP_ENTRY), 1, Inp= utFile); + if (ReadSize !=3D 1) { + return EFI_ABORTED; + } BytesRead +=3D sizeof (EFI_FV_BLOCK_MAP_ENTRY); =20 if (BlockMap.NumBlocks !=3D 0) { --=20 2.21.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#40387): https://edk2.groups.io/g/devel/message/40387 Mute This Topic: https://groups.io/mt/31572608/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-