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-2F2Czv4BOaCWWCy7my0P0...