svn commit: r301370 - stable/10/sys/dev/sfxge/common
Andrew Rybchenko
arybchik at FreeBSD.org
Sat Jun 4 16:35:30 UTC 2016
Author: arybchik
Date: Sat Jun 4 16:35:29 2016
New Revision: 301370
URL: https://svnweb.freebsd.org/changeset/base/301370
Log:
MFC r299911
sfxge(4): fix license validation check for V3 licenses
Length consistency checks were failing for ECC hashes.
Submitted by: Richard Houldsworth <rhouldsworth at solarflare.com>
Sponsored by: Solarflare Communications, Inc.
Modified:
stable/10/sys/dev/sfxge/common/efx_lic.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/dev/sfxge/common/efx_lic.c
==============================================================================
--- stable/10/sys/dev/sfxge/common/efx_lic.c Sat Jun 4 16:33:54 2016 (r301369)
+++ stable/10/sys/dev/sfxge/common/efx_lic.c Sat Jun 4 16:35:29 2016 (r301370)
@@ -1103,7 +1103,6 @@ fail1:
/* V3 format uses Huntington TLV format partition. See SF-108797-SW */
#define EFX_LICENSE_V3_KEY_LENGTH_MIN (64)
#define EFX_LICENSE_V3_KEY_LENGTH_MAX (160)
-#define EFX_LICENSE_V3_HASH_LENGTH (64)
__checkReturn efx_rc_t
efx_lic_v3_find_start(
@@ -1169,16 +1168,17 @@ efx_lic_v3_validate_key(
goto fail1;
}
- key_type = ((uint8_t*)keyp)[0];
- key_length = ((uint8_t*)keyp)[1] + EFX_LICENSE_V3_HASH_LENGTH;
-
- if(key_length > EFX_LICENSE_V3_KEY_LENGTH_MAX) {
+ if (length > EFX_LICENSE_V3_KEY_LENGTH_MAX) {
goto fail2;
}
+
+ key_type = ((uint8_t*)keyp)[0];
+ key_length = ((uint8_t*)keyp)[1];
+
if (key_type < 3) {
goto fail3;
}
- if (key_length != length) {
+ if (key_length > length) {
goto fail4;
}
return (B_TRUE);
More information about the svn-src-stable-10
mailing list