mirror of
https://gitlab.com/etherlab.org/ethercat.git
synced 2026-09-23 02:23:47 +08:00
Do not re-alloc memory in library implementation of ecrt_sdo_request_state().
This commit is contained in:
+3
-10
@@ -101,16 +101,9 @@ ec_request_state_t ecrt_sdo_request_state(ec_sdo_request_t *req)
|
||||
|
||||
if (data.size) { // new data waiting to be copied
|
||||
if (req->mem_size < data.size) {
|
||||
if (req->data)
|
||||
free(req->data);
|
||||
req->data = malloc(data.size);
|
||||
if (!req->data) {
|
||||
req->mem_size = 0;
|
||||
fprintf(stderr, "Failed to allocate %u bytes of SDO data"
|
||||
" memory!\n", data.size);
|
||||
return EC_REQUEST_ERROR;
|
||||
}
|
||||
req->mem_size = data.size;
|
||||
fprintf(stderr, "Received %u bytes do not fit info SDO data"
|
||||
" memory (%u bytes)!\n", data.size, req->mem_size);
|
||||
return EC_REQUEST_ERROR;
|
||||
}
|
||||
|
||||
data.data = req->data;
|
||||
|
||||
Reference in New Issue
Block a user