svn commit: r364989 - head/sys/dev/jedec_dimm

Rodney W. Grimes freebsd at gndrsh.dnsmgr.net
Tue Sep 1 13:41:15 UTC 2020


> On 31/08/2020 18:03, Eric van Gyzen wrote:
> > Author: vangyzen
> > Date: Mon Aug 31 15:03:23 2020
> > New Revision: 364989
> > URL: https://svnweb.freebsd.org/changeset/base/364989
> > 
> > Log:
> >   jedec_dimm: fix array overrun
> >   
> >   Coverity detected the overrunning of sc->part_str.
> >   
> >   Submitted by:	bret_ketchum at dell.com
> >   Reported by:	Coverity
> >   MFC after:	2 weeks
> >   Sponsored by:	Dell EMC Isilon
> >   Differential Revision:	https://reviews.freebsd.org/D26145
> > 
> > Modified:
> >   head/sys/dev/jedec_dimm/jedec_dimm.c
> > 
> > Modified: head/sys/dev/jedec_dimm/jedec_dimm.c
> > ==============================================================================
> > --- head/sys/dev/jedec_dimm/jedec_dimm.c	Mon Aug 31 14:47:23 2020	(r364988)
> > +++ head/sys/dev/jedec_dimm/jedec_dimm.c	Mon Aug 31 15:03:23 2020	(r364989)
> > @@ -795,7 +795,7 @@ jedec_dimm_field_to_str(struct jedec_dimm_softc *sc, c
> >  
> >  	/* If we're dealing with ASCII, convert trailing spaces to NULs. */
> >  	if (ascii) {
> > -		for (i = dstsz; i > 0; i--) {
> > +		for (i = dstsz - 1; i > 0; i--) {
> 
> If 'i' is an index into the array, then shouldn't the condition be greater-equal?

Looks that way to me too, and this corner case only occurs
if the string is all spaces, which is probably rare but may exist.

> 
> 
> >  			if (dst[i] == ' ') {
> >  				dst[i] = 0;
> >  			} else if (dst[i] == 0) {
> > 
> 
> 
> -- 
> Andriy Gapon
> 

-- 
Rod Grimes                                                 rgrimes at freebsd.org


More information about the svn-src-all mailing list