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)
|
||||
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;
|
||||
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)
|
||||
return status;
|
||||
|
||||
// Reserve space for NIL/NTL headers
|
||||
buf += sizeof(nil_header_t) + sizeof(ntl_header_t);
|
||||
|
||||
// Return buffer
|
||||
*buffer_ptr = buf;
|
||||
|
||||
|
||||
@@ -92,15 +92,11 @@ int get_msg_buffer(uint8_t **buffer_ptr, size_t len)
|
||||
if (buffer_ptr == NULL)
|
||||
return INCPHUB_EINVAL;
|
||||
|
||||
// Ensure space for NIL header and payload
|
||||
if ((sizeof(nil_header_t) + len) > INCPHUB_MSG_BUFFER_SIZE)
|
||||
return INCPHUB_ENOMEM;
|
||||
|
||||
// == Enter ==
|
||||
if (!global_lock(portMAX_DELAY))
|
||||
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();
|
||||
if (buf == NULL)
|
||||
{
|
||||
@@ -108,9 +104,6 @@ int get_msg_buffer(uint8_t **buffer_ptr, size_t len)
|
||||
return INCPHUB_ENOMEM;
|
||||
}
|
||||
|
||||
// Reserve space for NIL header
|
||||
buf += sizeof(nil_header_t);
|
||||
|
||||
// Return buffer
|
||||
*buffer_ptr = buf;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user