[coreboot-gerrit] Patch set updated for coreboot: soc/intel/common: Pass the minimum possible string length for strncpy

Barnali Sarkar (barnali.sarkar@intel.com) gerrit at coreboot.org
Wed Mar 8 19:33:30 CET 2017


Barnali Sarkar (barnali.sarkar at intel.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/18617

-gerrit

commit 9921adf85f031e50e115132672bceb3d7e37f001
Author: Barnali Sarkar <barnali.sarkar at intel.com>
Date:   Tue Mar 7 17:11:03 2017 +0530

    soc/intel/common: Pass the minimum possible string length for strncpy
    
    In strncpy() function of dimm_info_fill(), the minimum possible size
    of Module Part Number of DIMM is passed as argument.
    
    BUG=chrome-os-partner:61729
    BRANCH=none
    TEST=Build and boot KBLRVP to verify the type 17 DIMM info coming in
    SMBIOS Table from Kernel command "dmidecode".
    
    Change-Id: Icc7667149eae9705b91e271628af1b443eb8556e
    Signed-off-by: Barnali Sarkar <barnali.sarkar at intel.com>
---
 src/soc/intel/common/smbios.c | 6 ++++--
 src/soc/intel/common/smbios.h | 3 ++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/soc/intel/common/smbios.c b/src/soc/intel/common/smbios.c
index 3aee9ff..e84d941 100644
--- a/src/soc/intel/common/smbios.c
+++ b/src/soc/intel/common/smbios.c
@@ -20,7 +20,8 @@
 
 /* Fill the SMBIOS memory information from FSP MEM_INFO_DATA_HOB in CBMEM.*/
 void dimm_info_fill(struct dimm_info *dimm, u32 dimm_capacity, u8 ddr_type,
-		u32 frequency, u8 channel_id, u8 dimm_id, const char *module_part_num,
+		u32 frequency, u8 channel_id, u8 dimm_id,
+		const char *module_part_num, u32 module_part_number_size,
 		u16 data_width)
 {
 	dimm->dimm_size = dimm_capacity;
@@ -30,7 +31,8 @@ void dimm_info_fill(struct dimm_info *dimm, u32 dimm_capacity, u8 ddr_type,
 	dimm->dimm_num = dimm_id;
 	strncpy((char *)dimm->module_part_number,
 			module_part_num,
-			sizeof(dimm->module_part_number));
+			min(sizeof(dimm->module_part_number), 
+				module_part_number_size));
 	switch (data_width) {
 	case 8:
 		dimm->bus_width = MEMORY_BUS_WIDTH_8;
diff --git a/src/soc/intel/common/smbios.h b/src/soc/intel/common/smbios.h
index d38d612..8dec0bd 100644
--- a/src/soc/intel/common/smbios.h
+++ b/src/soc/intel/common/smbios.h
@@ -21,7 +21,8 @@
 
 /* Fill the SMBIOS memory information from FSP MEM_INFO_DATA_HOB in CBMEM.*/
 void dimm_info_fill(struct dimm_info *dimm, u32 dimm_capacity, u8 ddr_type,
-		u32 frequency, u8 channel_id, u8 dimm_id, const char *module_part_num,
+		u32 frequency, u8 channel_id, u8 dimm_id,
+		const char *module_part_num, u32 module_part_number_size,
 		u16 data_width);
 
 #endif /* _COMMON_SMBIOS_H_ */



More information about the coreboot-gerrit mailing list