Coverity memccpy issue - coverity

Here is the code snippet
typedef struct
{
unsigned char L2maclegacyString2[14];
}L2macLegacyLogPayload;
L2macLegacyLogPayload* _lData_=(L2macLegacyLogPayload*)buffData;
memccpy(_lData_->L2maclegacyString2,"RACH-RM-Exec",'\0',sizeof(_lData_->L2maclegacyString2));
CID 138514 (#2 of 3): Out-of-bounds access (OVERRUN)
10. overrun-buffer-arg: Overrunning array "RACH-RM-Exec" of 13 bytes by passing it to a function which
accesses it at byte offset 13 using argument 14U.
Looks like coverity is not following memccpy correctly. Is my understanding correct?
If yes, how can I annotate the abobe code to suppress the false coverity error?
Thank you very much in advance.

Related

STM32F373 SDADC Hal - Why use uint32_t type for pData in HAL_SDADC_Start_DMA in SIngle end zero reference mode?

I'm new in Code, I try to learn with STM32F373's SDADC using Hal library. In AN4207 - Getting started with STM32F37x/38x SDADC, page 9/28 crop below:
Converted value's range go from -32767 to +32767 so this range need to be int32_t, right?
Here I crop from UM1786 - Description of STM32F3 HAL page 603
This library use uint32_t type for converted data.
So my question is Why Hal use uint32_t instead of int32_t to store negative value?
Thanks
P/S: My code:
__IO int16_t SDADC1_Values[SDADC1_BUFFER_SIZE];
HAL_SDADC_Start_DMA(&hsdadc1, (uint32_t*) SDADC1_Values, SDADC1_BUFFER_SIZE);
It does not matter what type you use here. To be honest it should be void * to avoid stupid unnecessary warnings.

How to view the actual bytes in a Data variable in Swift

I have a variable of type Data in Swift code, using Xcode 10.1, called data. I can see it in the debugger, but I don't know where the actual values are stored. It should contain a letter (one byte) and three Uint8 values, all 0-255, so it should be 4 bytes. The first _length is shown to be 6, so i don't know what else could be added in (one reason I want to see what is actually in there) (below). But I do not understand where the binary value is. The _rawValue does not seem to be it because it contains 4.5 bytes. Perhaps it is a pointer, as it says "RawPointer"?
Where are the actual bytes stored?
Edit:
By setting a new variable equal to data[i], i did figure out the number of bytes is correct (I found the code was putting things in i didn't know). My string is, for example "!C 0 21 255 17", so 6 bytes.
However, I would still love to find an answer to my question: Is there way during debug to view the elements without creating new variables to inspect?
Create an extension of Data as follows:
extension Data {
public var bytes: [UInt8]
{
return [UInt8](self)
}
}
You can view the bytes of data during debugging as:
po data.bytes
Just type po data as NSData in the debug console. You will see the hex bytes like <066465666768>

IndexOutOfRangeException in zlib compression of iTextSharp

I found a pretty annoying and serious problem in iTextSharp's zlib implementation. Very hard to reproduce because it depends on the actual data going into the PDF but in some circumstances, the following exception occurs:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.util.zlib.Tree.d_code(Int32 dist)
at System.util.zlib.Deflate.compress_block(Int16[] ltree, Int16[] dtree)
In System.util.zlib.Tree.cs, there is obviously no range check, only an assumption of things never going wrong. Adding the following (byte) cast seems to be a solution:
internal static int d_code(int dist){
return ((dist) < 256 ? _dist_code[dist] : _dist_code[256+(byte)((dist)>>7)]);
}

Basic UVM sequence simulation query

I have a couple of issues with a basic UVM based TB I'm trying out to understand sequences and their working.
bvalid is being always picked as 0 in the driver when being updated in the response item
Couple of error messages for last 2 transactions (# UVM_ERROR # 18: uvm_test_top.axi_agent1.axi_base_seqr1##axi_base_seq1 [uvm_test_top.axi_agent1.axi_base_seqr1.axi_base_seq1] Response queue overflow, response was dropped)
Here is the link to the compiling code on EDA Playground
http://www.edaplayground.com/x/3x9
Any suggestions on what I'm missing??
Thanks
venkstart
Having a look at the specification for $urandom_range it shows the signature as: function int unsigned $urandom_range( int unsigned maxval, int unsigned minval = 0 ). Change your call to $urandom_range(1, 0) and it should work.
The second error comes from the fact that you are sending responses from the driver and not picking them up in your sequence. This is the line that does it: seq_item_port.item_done(axi_item_driv_src);. Either just do seq_item_port.item_done(); (don't send responses) or put a call to get_response() inside your sequence after finish_item(). What I usually do is update the fields of the original request and just call item_done(). For example, if I start a read transaction, in my driver I would drive the control signals and wait for the DUT to respond, update the data field of the request with the data I got from the DUT and call item_done() in my driver to mark the request as done. This way if I need this data in my sequence (to constrain some future item, for example) I have it.

Could not format log-string

while recieving snmptrap on linux system...every thing working fine,but in windows server & XP I am getting Could not format log-string.Anyone please help me to solve this problem.
I am using Net-SNMP-5.6.1.1 for windows server.
Thanks in Advance
This is because of supplied snprintf() is used instead of sprintf() as it does limit checks
for string length. or because of Void debugmsg_hex(const char *token, const u_char * thedata, size_t len) which can accept no longer than LOGLENGTH==1024.
Resolve:
verify snmp_logging.c and remove checks.
CODE
what is complete error message. I need the printed code.