fix: Corrected header space reservation logic
This commit is contained in:
@@ -25,7 +25,7 @@ int incphub_get_msg_buffer(incphub_cli_t *cli, uint8_t **buffer_ptr, size_t leng
|
|||||||
if (buffer_ptr == NULL)
|
if (buffer_ptr == NULL)
|
||||||
return INCPHUB_EINVAL;
|
return INCPHUB_EINVAL;
|
||||||
|
|
||||||
// Request extra space for NTL header
|
// Request extra space for NIL/NTL headers
|
||||||
size_t extended_len = sizeof(nil_header_t) + sizeof(ntl_header_t) + length;
|
size_t extended_len = sizeof(nil_header_t) + sizeof(ntl_header_t) + length;
|
||||||
uint8_t *buf;
|
uint8_t *buf;
|
||||||
|
|
||||||
@@ -33,6 +33,9 @@ int incphub_get_msg_buffer(incphub_cli_t *cli, uint8_t **buffer_ptr, size_t leng
|
|||||||
if (status != INCPHUB_OK)
|
if (status != INCPHUB_OK)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
|
// Reserve space for NIL/NTL headers
|
||||||
|
buf += sizeof(nil_header_t) + sizeof(ntl_header_t);
|
||||||
|
|
||||||
// Return buffer
|
// Return buffer
|
||||||
*buffer_ptr = buf;
|
*buffer_ptr = buf;
|
||||||
|
|
||||||
|
|||||||
@@ -92,15 +92,11 @@ int get_msg_buffer(uint8_t **buffer_ptr, size_t len)
|
|||||||
if (buffer_ptr == NULL)
|
if (buffer_ptr == NULL)
|
||||||
return INCPHUB_EINVAL;
|
return INCPHUB_EINVAL;
|
||||||
|
|
||||||
// Ensure space for NIL header and payload
|
|
||||||
if ((sizeof(nil_header_t) + len) > INCPHUB_MSG_BUFFER_SIZE)
|
|
||||||
return INCPHUB_ENOMEM;
|
|
||||||
|
|
||||||
// == Enter ==
|
// == Enter ==
|
||||||
if (!global_lock(portMAX_DELAY))
|
if (!global_lock(portMAX_DELAY))
|
||||||
return INCPHUB_EAGAIN;
|
return INCPHUB_EAGAIN;
|
||||||
|
|
||||||
//TODO: Allow buffer to be given by another layer (below NIL)
|
//TODO: Allow buffer to be given by another layer (below NIL/NTL)
|
||||||
uint8_t *buf = find_unused_buffer();
|
uint8_t *buf = find_unused_buffer();
|
||||||
if (buf == NULL)
|
if (buf == NULL)
|
||||||
{
|
{
|
||||||
@@ -108,9 +104,6 @@ int get_msg_buffer(uint8_t **buffer_ptr, size_t len)
|
|||||||
return INCPHUB_ENOMEM;
|
return INCPHUB_ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reserve space for NIL header
|
|
||||||
buf += sizeof(nil_header_t);
|
|
||||||
|
|
||||||
// Return buffer
|
// Return buffer
|
||||||
*buffer_ptr = buf;
|
*buffer_ptr = buf;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user