mirror of
https://github.com/aaru-dps/libaaruformat.git
synced 2025-12-16 19:24:40 +00:00
When setting dump hardware consider that strings are already NUL-terminated.
This commit is contained in:
@@ -626,9 +626,12 @@ AARU_EXPORT int32_t AARU_CALL aaruf_set_dumphw(void *context, uint8_t *data, siz
|
|||||||
if(field##_length > 0) \
|
if(field##_length > 0) \
|
||||||
{ \
|
{ \
|
||||||
if(field##_length > length - pos) goto invalid_data; \
|
if(field##_length > length - pos) goto invalid_data; \
|
||||||
copy[e].field = (uint8_t *)calloc(1, field##_length + 1); \
|
/* Allocate only field##_length bytes, since input is NUL-terminated */ \
|
||||||
|
copy[e].field = (uint8_t *)calloc(1, field##_length); \
|
||||||
if(copy[e].field == NULL) goto free_copy_and_error; \
|
if(copy[e].field == NULL) goto free_copy_and_error; \
|
||||||
memcpy(copy[e].field, data + pos, field##_length); \
|
memcpy(copy[e].field, data + pos, field##_length); \
|
||||||
|
/* Ensure NUL-termination in case input is malformed */ \
|
||||||
|
copy[e].field[field##_length - 1] = '\0'; \
|
||||||
pos += field##_length; \
|
pos += field##_length; \
|
||||||
} \
|
} \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|||||||
Reference in New Issue
Block a user