From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.groups.io with SMTP id smtpd.web10.442.1616014864569283510 for ; Wed, 17 Mar 2021 14:01:04 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=hClNRKUk; spf=pass (domain: redhat.com, ip: 63.128.21.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1616014863; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VBDSaqJZBb92feheIdDQ1gvSt86RbfnAvIryGoYOyQQ=; b=hClNRKUknzNq/CNmp477nG59WQl94XPRQYd1bc025LHyWf5xIOG1qCWAVxI3DXdQlYjIm5 BTluzIIgEFM6RPRIN0fNiXDJbCL2+m+6xj+52qWXhUYmLSVBJIiciWf+ciNVwO10NwLhIq dAsdWYYFy4ZUGpvbulTUdm+KHzYhEm0= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-342-MhjZnqTyNPqYwWgEhY0xhw-1; Wed, 17 Mar 2021 17:00:49 -0400 X-MC-Unique: MhjZnqTyNPqYwWgEhY0xhw-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 471DD5195; Wed, 17 Mar 2021 21:00:48 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-113-112.ams2.redhat.com [10.36.113.112]) by smtp.corp.redhat.com (Postfix) with ESMTP id 45DC350332; Wed, 17 Mar 2021 21:00:47 +0000 (UTC) Subject: Re: [edk2-devel] [PATCH] ShellPkg/Pci: Add valid check for PCI extended config space parser To: devel@edk2.groups.io, ianx.kuo@intel.com Cc: VincentX Ke References: <568b955d98de0cc3dc52467bf394324e391d4b7c.1615954984.git.vincentx.ke@intel.com> From: "Laszlo Ersek" Message-ID: <0779c9e3-4e08-20dc-a2fc-c9b99b594c80@redhat.com> Date: Wed, 17 Mar 2021 22:00:46 +0100 MIME-Version: 1.0 In-Reply-To: <568b955d98de0cc3dc52467bf394324e391d4b7c.1615954984.git.vincentx.ke@intel.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Vincent, Ian: something is seriously broken in your email setup. I have seen three messages from you guys on the list, and each one of those is "from the future". Here are the Date headers from the messages: - Date: Thu, 8 Apr 2021 05:50:21 +0800 https://edk2.groups.io/g/devel/message/72748 - Date: Sat, 10 Apr 2021 01:34:45 +0800 https://edk2.groups.io/g/devel/message/72862 - Date: Sat, 10 Apr 2021 22:15:09 +0800 https://edk2.groups.io/g/devel/message/72953 Please fix your clock setup, and post a new version. This is why I am asking: the git-am manual says, --ignore-date By default the command records the date from the e-mail message as the commit author date, and uses the time of commit creation as the committer date. [...] When we merge a patch using a github.com Pull Request, the "mergify bot" preserves the Author Date field. That's a good thing in itself, but it means that the edk2 commit history would have a patch from the future -- a patch committed in March, but "authored" in April. That's bogus. Whoever actually applies the patch (probably the ShellPkg maintainer) can work around the issue, by specifying the "--ignore-date" flag for "git-am". But that's easy to forget, and not the right thing anyway. So please just fix your broken clock, and post a new version. Also: you should have used v1, v2, v3 in the subject prefixes (just pass -v1, -v2, -v3 to git-format-patch). The next version that you post should be marked "v4". Thanks Laszlo On 04/10/21 16:15, IanX Kuo wrote: > From: VincentX Ke > > Bugzilla: 3262 (https://bugzilla.tianocore.org/show_bug.cgi?id=3262) > > No need to print PCIe details while CapabilityId is 0xFFFF. > Limit the NextCapabilityOffset to PCI configuration space. > > Signed-off-by: VincentX Ke > --- > ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c > index a2f04d8db5..1e5dc75e27 100644 > --- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c > +++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c > @@ -2038,12 +2038,14 @@ LocatePciCapability ( > > @param[in] PciExpressCap PCI Express capability buffer. > @param[in] ExtendedConfigSpace PCI Express extended configuration space. > + @param[in] ExtendedConfigSize PCI Express extended configuration size. > @param[in] ExtendedCapability PCI Express extended capability ID to explain. > **/ > VOID > PciExplainPciExpress ( > IN PCI_CAPABILITY_PCIEXP *PciExpressCap, > IN UINT8 *ExtendedConfigSpace, > + IN UINTN ExtendedConfigSize, > IN CONST UINT16 ExtendedCapability > ); > > @@ -2921,6 +2923,7 @@ ShellCommandRunPci ( > PciExplainPciExpress ( > (PCI_CAPABILITY_PCIEXP *) ((UINT8 *) &ConfigSpace + PcieCapabilityPtr), > ExtendedConfigSpace, > + ExtendedConfigSize, > ExtendedCapability > ); > } > @@ -5698,12 +5701,14 @@ PrintPciExtendedCapabilityDetails( > > @param[in] PciExpressCap PCI Express capability buffer. > @param[in] ExtendedConfigSpace PCI Express extended configuration space. > + @param[in] ExtendedConfigSize PCI Express extended configuration size. > @param[in] ExtendedCapability PCI Express extended capability ID to explain. > **/ > VOID > PciExplainPciExpress ( > IN PCI_CAPABILITY_PCIEXP *PciExpressCap, > IN UINT8 *ExtendedConfigSpace, > + IN UINTN ExtendedConfigSize, > IN CONST UINT16 ExtendedCapability > ) > { > @@ -5786,7 +5791,7 @@ PciExplainPciExpress ( > } > > ExtHdr = (PCI_EXP_EXT_HDR*)ExtendedConfigSpace; > - while (ExtHdr->CapabilityId != 0 && ExtHdr->CapabilityVersion != 0) { > + while (ExtHdr->CapabilityId != 0 && ExtHdr->CapabilityVersion != 0 && ExtHdr->CapabilityId != 0xFFFF) { > // > // Process this item > // > @@ -5800,7 +5805,8 @@ PciExplainPciExpress ( > // > // Advance to the next item if it exists > // > - if (ExtHdr->NextCapabilityOffset != 0) { > + if (ExtHdr->NextCapabilityOffset != 0 && > + (ExtHdr->NextCapabilityOffset <= (UINT32) (ExtendedConfigSize + EFI_PCIE_CAPABILITY_BASE_OFFSET - sizeof (PCI_EXP_EXT_HDR)))) { > ExtHdr = (PCI_EXP_EXT_HDR*)(ExtendedConfigSpace + ExtHdr->NextCapabilityOffset - EFI_PCIE_CAPABILITY_BASE_OFFSET); > } else { > break; >