fix: Corrected header space reservation logic

This commit is contained in:
2026-06-29 15:12:48 +01:00
parent b26c53cb0f
commit 439df57e23
2 changed files with 5 additions and 9 deletions

View File

@@ -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;

View File

@@ -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;