Hi, Please find the latest report on new defect(s) introduced to coreboot found with Coverity Scan.
7 new defect(s) introduced to coreboot found with Coverity Scan. 3 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan. New defect(s) Reported-by: Coverity Scan Showing 7 of 7 defect(s) ** CID 1464057: Memory - corruptions (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 370 in MemTDIMMPresence3() ________________________________________________________________________________________________________ *** CID 1464057: Memory - corruptions (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 370 in MemTDIMMPresence3() 364 ChannelPtr->RefRawCard[i] = SpdBufferPtr[SPD_RAWCARD] & 0x1F; 365 // 366 // Get control word values for RC3, RC4 and RC5 367 // 368 ChannelPtr->CtrlWrd03[i] = SpdBufferPtr[SPD_CTLWRD03] >> 4; 369 ChannelPtr->CtrlWrd04[i] = SpdBufferPtr[SPD_CTLWRD04] & 0x0F; >>> CID 1464057: Memory - corruptions (OVERRUN) >>> Overrunning array "ChannelPtr->CtrlWrd05" of 4 bytes at byte offset 4 >>> using index "i" (which evaluates to 4). 370 ChannelPtr->CtrlWrd05[i] = SpdBufferPtr[SPD_CTLWRD05] >> 4; 371 // 372 // Temporarily store info. of SPD byte 63 into CtrlWrd02(s), 373 // and they will be used late to calculate real RC2 and RC8 value 374 // 375 ChannelPtr->CtrlWrd02[i] = SpdBufferPtr[SPD_ADDRMAP] & 0x03; ** CID 1464056: Memory - corruptions (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 364 in MemTDIMMPresence3() ________________________________________________________________________________________________________ *** CID 1464056: Memory - corruptions (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 364 in MemTDIMMPresence3() 358 ChannelPtr->DimmMirrorPresent |= DimmMask; 359 } 360 } 361 // 362 // Get byte62: Reference Raw Card information 363 // >>> CID 1464056: Memory - corruptions (OVERRUN) >>> Overrunning array "ChannelPtr->RefRawCard" of 4 bytes at byte offset 4 >>> using index "i" (which evaluates to 4). 364 ChannelPtr->RefRawCard[i] = SpdBufferPtr[SPD_RAWCARD] & 0x1F; 365 // 366 // Get control word values for RC3, RC4 and RC5 367 // 368 ChannelPtr->CtrlWrd03[i] = SpdBufferPtr[SPD_CTLWRD03] >> 4; 369 ChannelPtr->CtrlWrd04[i] = SpdBufferPtr[SPD_CTLWRD04] & 0x0F; ** CID 1464055: Memory - corruptions (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 375 in MemTDIMMPresence3() ________________________________________________________________________________________________________ *** CID 1464055: Memory - corruptions (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 375 in MemTDIMMPresence3() 369 ChannelPtr->CtrlWrd04[i] = SpdBufferPtr[SPD_CTLWRD04] & 0x0F; 370 ChannelPtr->CtrlWrd05[i] = SpdBufferPtr[SPD_CTLWRD05] >> 4; 371 // 372 // Temporarily store info. of SPD byte 63 into CtrlWrd02(s), 373 // and they will be used late to calculate real RC2 and RC8 value 374 // >>> CID 1464055: Memory - corruptions (OVERRUN) >>> Overrunning array "ChannelPtr->CtrlWrd02" of 4 bytes at byte offset 4 >>> using index "i" (which evaluates to 4). 375 ChannelPtr->CtrlWrd02[i] = SpdBufferPtr[SPD_ADDRMAP] & 0x03; 376 // 377 // Copy the number of registers to the Ps Block to persist across frequency changes 378 // 379 NBPtr->PsPtr->NumOfReg[i] = SpdBufferPtr[SPD_ADDRMAP] & 0x03; 380 // ** CID 1464054: (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 379 in MemTDIMMPresence3() /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 384 in MemTDIMMPresence3() /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 383 in MemTDIMMPresence3() ________________________________________________________________________________________________________ *** CID 1464054: (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 379 in MemTDIMMPresence3() 373 // and they will be used late to calculate real RC2 and RC8 value 374 // 375 ChannelPtr->CtrlWrd02[i] = SpdBufferPtr[SPD_ADDRMAP] & 0x03; 376 // 377 // Copy the number of registers to the Ps Block to persist across frequency changes 378 // >>> CID 1464054: (OVERRUN) >>> Overrunning array "NBPtr->PsPtr->NumOfReg" of 4 bytes at byte offset 4 >>> using index "i" (which evaluates to 4). 379 NBPtr->PsPtr->NumOfReg[i] = SpdBufferPtr[SPD_ADDRMAP] & 0x03; 380 // 381 // Workaround for early revisions of DIMMs which SPD byte 63 is 0 382 // 383 if (NBPtr->PsPtr->NumOfReg[i] == JED_UNDEFINED) { 384 NBPtr->PsPtr->NumOfReg[i] = 1; /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 384 in MemTDIMMPresence3() 378 // 379 NBPtr->PsPtr->NumOfReg[i] = SpdBufferPtr[SPD_ADDRMAP] & 0x03; 380 // 381 // Workaround for early revisions of DIMMs which SPD byte 63 is 0 382 // 383 if (NBPtr->PsPtr->NumOfReg[i] == JED_UNDEFINED) { >>> CID 1464054: (OVERRUN) >>> Overrunning array "NBPtr->PsPtr->NumOfReg" of 4 bytes at byte offset 4 >>> using index "i" (which evaluates to 4). 384 NBPtr->PsPtr->NumOfReg[i] = 1; 385 } 386 } // if DIMM present 387 } // Dimm loop 388 389 if (Channel == 0) { /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 383 in MemTDIMMPresence3() 377 // Copy the number of registers to the Ps Block to persist across frequency changes 378 // 379 NBPtr->PsPtr->NumOfReg[i] = SpdBufferPtr[SPD_ADDRMAP] & 0x03; 380 // 381 // Workaround for early revisions of DIMMs which SPD byte 63 is 0 382 // >>> CID 1464054: (OVERRUN) >>> Overrunning array "NBPtr->PsPtr->NumOfReg" of 4 bytes at byte offset 4 >>> using index "i" (which evaluates to 4). 383 if (NBPtr->PsPtr->NumOfReg[i] == JED_UNDEFINED) { 384 NBPtr->PsPtr->NumOfReg[i] = 1; 385 } 386 } // if DIMM present 387 } // Dimm loop 388 ** CID 1464053: Memory - corruptions (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 368 in MemTDIMMPresence3() ________________________________________________________________________________________________________ *** CID 1464053: Memory - corruptions (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 368 in MemTDIMMPresence3() 362 // Get byte62: Reference Raw Card information 363 // 364 ChannelPtr->RefRawCard[i] = SpdBufferPtr[SPD_RAWCARD] & 0x1F; 365 // 366 // Get control word values for RC3, RC4 and RC5 367 // >>> CID 1464053: Memory - corruptions (OVERRUN) >>> Overrunning array "ChannelPtr->CtrlWrd03" of 4 bytes at byte offset 4 >>> using index "i" (which evaluates to 4). 368 ChannelPtr->CtrlWrd03[i] = SpdBufferPtr[SPD_CTLWRD03] >> 4; 369 ChannelPtr->CtrlWrd04[i] = SpdBufferPtr[SPD_CTLWRD04] & 0x0F; 370 ChannelPtr->CtrlWrd05[i] = SpdBufferPtr[SPD_CTLWRD05] >> 4; 371 // 372 // Temporarily store info. of SPD byte 63 into CtrlWrd02(s), 373 // and they will be used late to calculate real RC2 and RC8 value ** CID 1464052: (FORWARD_NULL) ________________________________________________________________________________________________________ *** CID 1464052: (FORWARD_NULL) /src/vendorcode/amd/agesa/f15tn/Proc/CPU/cpuApicUtilities.c: 438 in ApEntry() 432 break; 433 default: 434 ReturnCode = 0; 435 break; 436 } 437 if (((ApFlags & AP_RETURN_PARAMS) != 0)) { >>> CID 1464052: (FORWARD_NULL) >>> Passing "&DataTransferInfo" to "ApUtilTransmitBuffer", which >>> dereferences null "DataTransferInfo.DataPtr". 438 ApUtilTransmitBuffer (SourceSocket, 0, &DataTransferInfo, StdHeader); 439 } 440 if ((ApFlags & AP_TASK_HAS_OUTPUT) != 0) { 441 ApUtilWriteDataDword (ReturnCode, StdHeader); 442 } 443 if ((ApFlags & AP_END_AT_HLT) != 0) { /src/vendorcode/amd/agesa/f16kb/Proc/CPU/cpuApicUtilities.c: 438 in ApEntry() 432 break; 433 default: 434 ReturnCode = 0; 435 break; 436 } 437 if (((ApFlags & AP_RETURN_PARAMS) != 0)) { >>> CID 1464052: (FORWARD_NULL) >>> Passing "&DataTransferInfo" to "ApUtilTransmitBuffer", which >>> dereferences null "DataTransferInfo.DataPtr". 438 ApUtilTransmitBuffer (SourceSocket, 0, &DataTransferInfo, StdHeader); 439 } 440 if ((ApFlags & AP_TASK_HAS_OUTPUT) != 0) { 441 ApUtilWriteDataDword (ReturnCode, StdHeader); 442 } 443 if ((ApFlags & AP_END_AT_HLT) != 0) { ** CID 1464051: Memory - corruptions (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 369 in MemTDIMMPresence3() ________________________________________________________________________________________________________ *** CID 1464051: Memory - corruptions (OVERRUN) /src/vendorcode/amd/agesa/f15tn/Proc/Mem/Tech/DDR3/mtspd3.c: 369 in MemTDIMMPresence3() 363 // 364 ChannelPtr->RefRawCard[i] = SpdBufferPtr[SPD_RAWCARD] & 0x1F; 365 // 366 // Get control word values for RC3, RC4 and RC5 367 // 368 ChannelPtr->CtrlWrd03[i] = SpdBufferPtr[SPD_CTLWRD03] >> 4; >>> CID 1464051: Memory - corruptions (OVERRUN) >>> Overrunning array "ChannelPtr->CtrlWrd04" of 4 bytes at byte offset 4 >>> using index "i" (which evaluates to 4). 369 ChannelPtr->CtrlWrd04[i] = SpdBufferPtr[SPD_CTLWRD04] & 0x0F; 370 ChannelPtr->CtrlWrd05[i] = SpdBufferPtr[SPD_CTLWRD05] >> 4; 371 // 372 // Temporarily store info. of SPD byte 63 into CtrlWrd02(s), 373 // and they will be used late to calculate real RC2 and RC8 value 374 // ________________________________________________________________________________________________________ To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yq2SfQfrHt3Prsn4qSLrYIrajINpiFX8l0vrlNSf8iCrS27qY0Cr0DkycwNUgGZJj8-3Df19-_L-2FDzr14mnrsJO5b1wX1hp9b1MAQygl7x-2B74RAaH2cn2PuWaozMAXCAM2IUO5zGE-2BEw7FNxVXMCAcj5S2nVqo8kE8RAnIWdS-2Br0Q80wHVPoLM8LKyrMTGLuPjCIH6TGQ7o5iVasQhTuAQXvev-2BpsoCxTXL-2Fn2wSl5Ov-2BriAOzFUqOF5FY6BbPCEvyWcnCcyszjOmxWTjf-2B42uyzuTVHs2Ww-3D-3D _______________________________________________ coreboot mailing list -- coreboot@coreboot.org To unsubscribe send an email to coreboot-le...@coreboot.org