diff --git a/src/read.c b/src/read.c index 82406d6..4ea10a9 100644 --- a/src/read.c +++ b/src/read.c @@ -97,6 +97,13 @@ int32_t aaruf_read_media_tag(void *context, uint8_t *data, const int32_t tag, ui return AARUF_ERROR_NOT_AARUFORMAT; } + if(length == NULL) + { + FATAL("Invalid length pointer"); + TRACE("Exiting aaruf_read_media_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE"); + return AARUF_ERROR_INCORRECT_DATA_SIZE; + } + const aaruformatContext *ctx = context; // Not a libaaruformat context @@ -269,6 +276,14 @@ int32_t aaruf_read_sector(void *context, const uint64_t sector_address, bool neg ctx = context; + if(length == NULL) + { + FATAL("Invalid length pointer"); + + TRACE("Exiting aaruf_read_sector() = AARUF_ERROR_INCORRECT_DATA_SIZE"); + return AARUF_ERROR_INCORRECT_DATA_SIZE; + } + // Not a libaaruformat context if(ctx->magic != AARU_MAGIC) { @@ -640,6 +655,14 @@ int32_t aaruf_read_track_sector(void *context, uint8_t *data, const uint64_t sec aaruformatContext *ctx = context; + if(length == NULL) + { + FATAL("Invalid length pointer"); + + TRACE("Exiting aaruf_read_track_sector() = AARUF_ERROR_INCORRECT_DATA_SIZE"); + return AARUF_ERROR_INCORRECT_DATA_SIZE; + } + // Not a libaaruformat context if(ctx->magic != AARU_MAGIC) { @@ -793,6 +816,14 @@ int32_t aaruf_read_sector_long(void *context, const uint64_t sector_address, boo ctx = context; + if(length == NULL) + { + FATAL("Invalid length pointer"); + + TRACE("Exiting aaruf_read_sector_long() = AARUF_ERROR_INCORRECT_DATA_SIZE"); + return AARUF_ERROR_INCORRECT_DATA_SIZE; + } + // Not a libaaruformat context if(ctx->magic != AARU_MAGIC) { @@ -1290,6 +1321,14 @@ int32_t aaruf_read_sector_tag(const void *context, const uint64_t sector_address ctx = context; + if(length == NULL) + { + FATAL("Invalid length pointer"); + + TRACE("Exiting aaruf_read_sector_tag() = AARUF_ERROR_INCORRECT_DATA_SIZE"); + return AARUF_ERROR_INCORRECT_DATA_SIZE; + } + // Not a libaaruformat context if(ctx->magic != AARU_MAGIC) {