Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Nov 2015 16:23:27 +0000 (UTC)
From:      Andrew Rybchenko <arybchik@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r291398 - head/sys/dev/sfxge/common
Message-ID:  <201511271623.tARGNRCE087574@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: arybchik
Date: Fri Nov 27 16:23:27 2015
New Revision: 291398
URL: https://svnweb.freebsd.org/changeset/base/291398

Log:
  sfxge: cleanup: report error on failure path in efx_vpd_hunk_verify
  
  If the VPD is corrupt and contains an 'RV' keyword before the
  END tag, then this function could return without setting the
  return code to report the error.
  
  Found by prefast.
  
  Submitted by:   Andy Moreton <amoreton at solarflare.com>
  Sponsored by:   Solarflare Communications, Inc.
  MFC after:      2 days

Modified:
  head/sys/dev/sfxge/common/efx_vpd.c

Modified: head/sys/dev/sfxge/common/efx_vpd.c
==============================================================================
--- head/sys/dev/sfxge/common/efx_vpd.c	Fri Nov 27 16:21:14 2015	(r291397)
+++ head/sys/dev/sfxge/common/efx_vpd.c	Fri Nov 27 16:23:27 2015	(r291398)
@@ -545,8 +545,10 @@ efx_vpd_hunk_verify(
 
 		for (pos = 0; pos != taglen; pos += 3 + keylen) {
 			/* RV keyword must be the last in the block */
-			if (cksummed)
+			if (cksummed) {
+				rc = EFAULT;
 				goto fail2;
+			}
 
 			if ((rc = efx_vpd_next_keyword(data + offset,
 			    taglen, pos, &keyword, &keylen)) != 0)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201511271623.tARGNRCE087574>