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

Reply via email to