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 -- [email protected]
To unsubscribe send an email to [email protected]