Skip to content

Commit

Permalink
c: prevent uint32 overflow
Browse files Browse the repository at this point in the history
  • Loading branch information
inkeliz committed May 17, 2022
1 parent f7013ab commit b92eae5
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions c/karmem.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,16 @@ void KarmemWriterFree(KarmemWriter * w) {

typedef struct {
uint8_t *pointer;
uint32_t length;
uint64_t length;
uint32_t capacity;
} KarmemReader;

KarmemReader KarmemNewReader(uint8_t * memory, uint32_t length) {
return (KarmemReader) {.pointer = memory, .length = length, .capacity = length};
return (KarmemReader) {.pointer = memory, .length = (uint64_t) length, .capacity = length};
}

bool KarmemReaderIsValidOffset(KarmemReader * r, uint32_t offset, uint32_t size) {
return r->length >= offset + size;
return r->length >= (uint64_t) offset + (uint64_t) size;
}

// SetSize re-defines the bounds of the slice, useful when the
Expand All @@ -69,6 +69,6 @@ uint8_t KarmemReaderSetSize(KarmemReader * r, uint32_t size) {
if (size > r->capacity) {
return 0;
}
r->length = size;
r->length = (uint64_t) size;
return 1;
}

0 comments on commit b92eae5

Please sign in to comment.