答复: [????] Re: [PATCH] iommu/amd: Fix undef ined behavior in devid_write debugfs function

"Li,Rongqing" <[email protected]>
Newsgroups dev.linux.lists.iommu,org.kernel.vger.linux-kernel
Message-ID <[email protected]>

> 
> On Mon, Jun 01, 2026 at 08:12:40AM -0400, lirongqing wrote:
> > From: Li RongQing <[email protected]>
> >
> > When for_each_pci_segment() loop completes without finding a matching
> > segment, the pci_seg pointer is not NULL but points to an invalid
> > memory location (the list head). Accessing pci_seg->id after the loop
> > causes undefined behavior.
> >
> > Fix this by handling the successful case inside the loop and returning
> > -EINVAL after the loop if no matching segment is found.
> >
> > Fixes: 2e98940f123d9 ("iommu/amd: Add support for device id user
> > input")
> > Signed-off-by: Li RongQing <[email protected]>
> 
> Hi,
> 
> Thanks for the fix. Looks good to me.
> 
> Reviewed-by: Ankit Soni <[email protected]>
> 

Ping

[Li,Rongqing] 


> > ---
> >  drivers/iommu/amd/debugfs.c | 12 +++---------
> >  1 file changed, 3 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/iommu/amd/debugfs.c b/drivers/iommu/amd/debugfs.c
> > index 4c53b63..5c573ec 100644
> > --- a/drivers/iommu/amd/debugfs.c
> > +++ b/drivers/iommu/amd/debugfs.c
> > @@ -176,19 +176,13 @@ static ssize_t devid_write(struct file *filp, const
> char __user *ubuf,
> >  			kfree(srcid_ptr);
> >  			return -ENODEV;
> >  		}
> > -		break;
> > -	}
> > -
> > -	if (pci_seg->id != seg) {
> > +		sbdf = PCI_SEG_DEVID_TO_SBDF(seg, devid);
> >  		kfree(srcid_ptr);
> > -		return -EINVAL;
> > +		return cnt;
> >  	}
> >
> > -	sbdf = PCI_SEG_DEVID_TO_SBDF(seg, devid);
> > -
> >  	kfree(srcid_ptr);
> > -
> > -	return cnt;
> > +	return -EINVAL;
> >  }
> >
> >  static int devid_show(struct seq_file *m, void *unused)
> > --
> > 2.9.4
> >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.