From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web12.12841.1571013108295278785 for ; Sun, 13 Oct 2019 17:31:48 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: zhichao.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Oct 2019 17:31:46 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,294,1566889200"; d="scan'208";a="194860947" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga007.fm.intel.com with ESMTP; 13 Oct 2019 17:31:46 -0700 Received: from shsmsx108.ccr.corp.intel.com (10.239.4.97) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 13 Oct 2019 17:31:46 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.96]) by SHSMSX108.ccr.corp.intel.com ([169.254.8.225]) with mapi id 14.03.0439.000; Mon, 14 Oct 2019 08:31:44 +0800 From: "Gao, Zhichao" To: "Zhang, Shenglei" , "devel@edk2.groups.io" CC: "Ni, Ray" Subject: Re: [PATCH] ShellPkg/Shell/FileHandleWrappers.c: Add check for MemFile->Buffer Thread-Topic: [PATCH] ShellPkg/Shell/FileHandleWrappers.c: Add check for MemFile->Buffer Thread-Index: AQHVgNHnABfP3wBM4EuLwtX2D123mqdZSqtQ Date: Mon, 14 Oct 2019 00:31:43 +0000 Message-ID: <3CE959C139B4C44DBEA1810E3AA6F9000B85648C@SHSMSX101.ccr.corp.intel.com> References: <20191012075115.10972-1-shenglei.zhang@intel.com> In-Reply-To: <20191012075115.10972-1-shenglei.zhang@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: zhichao.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable > -----Original Message----- > From: Zhang, Shenglei > Sent: Saturday, October 12, 2019 3:51 PM > To: devel@edk2.groups.io > Cc: Ni, Ray ; Gao, Zhichao > Subject: [PATCH] ShellPkg/Shell/FileHandleWrappers.c: Add check for > MemFile->Buffer >=20 > Add check for MemFile->Buffer. > Return EFI_OUT_OF_RESOURCES if MemFile->Buffer is NULL. >=20 > Cc: Ray Ni > Cc: Zhichao Gao > Signed-off-by: Shenglei Zhang > --- > ShellPkg/Application/Shell/FileHandleWrappers.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) >=20 > diff --git a/ShellPkg/Application/Shell/FileHandleWrappers.c > b/ShellPkg/Application/Shell/FileHandleWrappers.c > index 587556c42495..673031c9c73a 100644 > --- a/ShellPkg/Application/Shell/FileHandleWrappers.c > +++ b/ShellPkg/Application/Shell/FileHandleWrappers.c > @@ -1644,7 +1644,10 @@ FileInterfaceMemWrite( > // > if ((UINTN)(MemFile->Position + (*BufferSize)) > (UINTN)(MemFile- > >BufferSize)) { > MemFile->Buffer =3D ReallocatePool((UINTN)(MemFile->BufferSize), > (UINTN)(MemFile->BufferSize) + (*BufferSize) + > MEM_WRITE_REALLOC_OVERHEAD, MemFile->Buffer); > - MemFile->BufferSize +=3D (*BufferSize) + > MEM_WRITE_REALLOC_OVERHEAD; > + if (MemFile->Buffer =3D=3D NULL){ > + return EFI_OUT_OF_RESOURCES; > + } > + MemFile->BufferSize +=3D (*BufferSize) + > + MEM_WRITE_REALLOC_OVERHEAD; > } > CopyMem(((UINT8*)MemFile->Buffer) + MemFile->Position, Buffer, > *BufferSize); > MemFile->Position +=3D (*BufferSize); @@ -1661,6 +1664,9 @@ > FileInterfaceMemWrite( > AsciiSPrint(AsciiBuffer, *BufferSize, "%S", Buffer); > if ((UINTN)(MemFile->Position + AsciiStrSize(AsciiBuffer)) > > (UINTN)(MemFile->BufferSize)) { > MemFile->Buffer =3D ReallocatePool((UINTN)(MemFile->BufferSize), > (UINTN)(MemFile->BufferSize) + AsciiStrSize(AsciiBuffer) + > MEM_WRITE_REALLOC_OVERHEAD, MemFile->Buffer); > + if (MemFile->Buffer =3D=3D NULL){ > + return EFI_OUT_OF_RESOURCES; > + } Before return the function, we should free all the allocated buffer, here m= issing the AsciiBuffer. Thanks, Zhichao > MemFile->BufferSize +=3D AsciiStrSize(AsciiBuffer) + > MEM_WRITE_REALLOC_OVERHEAD; > } > CopyMem(((UINT8*)MemFile->Buffer) + MemFile->Position, AsciiBuffer, > AsciiStrSize(AsciiBuffer)); > -- > 2.18.0.windows.1