Skip to content

Commit e8e2e63

Browse files
authored
Fixed memcpy for template (#352)
* Fixed memcpy for template Signed-off-by: Cervenka Dusan <cervenka@acrios.com> * Cover all memcpy for length 0 Signed-off-by: Cervenka Dusan <cervenka@acrios.com> --------- Signed-off-by: Cervenka Dusan <cervenka@acrios.com>
1 parent 88feacd commit e8e2e63

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

erpcgen/src/templates/c_coders.template

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,22 +60,31 @@ if (({$info.sizeTemp} <= {$info.maxSize}) && ({$info.dataTemp} != NULL))
6060
{% else %}
6161
{% set indent = "" >%}
6262
{% endif %}
63+
{$indent}if ({$info.sizeTemp} > 0)
64+
{$indent}{
6365
{% if source == "server" || info.useMallocOnClientSide == true %}
6466
{$indent}{$info.name} = (uint8_t *) erpc_malloc({$info.maxSize} * sizeof(uint8_t));
6567
{% if generateAllocErrorChecks == true %}
66-
{$indent}if (({$info.name} == NULL) && ({$info.sizeTemp} > 0))
67-
{$indent}{
68-
{$indent} codec->updateStatus(kErpcStatus_MemoryError);
68+
{$indent} if ({$info.name} == NULL)
69+
{$indent} {
70+
{$indent} codec->updateStatus(kErpcStatus_MemoryError);
71+
{$indent} }
72+
{$indent} else
73+
{$indent} {
74+
{$indent} memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp});
75+
{$indent} }
76+
{% else -- generateAllocErrorChecks == true %}
77+
{$indent} memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp});
78+
{% endif -- generateAllocErrorChecks == true %}
79+
{% else %}
80+
{$indent} memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp});
81+
{% endif %}
6982
{$indent}}
83+
{% if source == "server" || info.useMallocOnClientSide == true %}
7084
{$indent}else
7185
{$indent}{
72-
{$indent} memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp});
86+
{$indent} {$info.name} = NULL;
7387
{$indent}}
74-
{% else -- generateAllocErrorChecks == true %}
75-
{$indent}memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp});
76-
{% endif -- generateAllocErrorChecks == true %}
77-
{% else %}
78-
{$indent}memcpy({$info.name}, {$info.dataTemp}, {$info.sizeTemp});
7988
{% endif %}
8089
{% if info.maxSize != info.sizeTemp %}
8190
}

0 commit comments

Comments
 (0)