blob: Verify parsing does not run off end of page
Change-Id: I2663e0518705ffd23afbb69c7ae5bf5aff001c85 Signed-off-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
0b89cff2ea
commit
97b3efa349
@ -249,8 +249,11 @@ _spdk_blob_parse_page(const struct spdk_blob_md_page *page, struct spdk_blob *bl
|
||||
}
|
||||
|
||||
/* Advance to the next descriptor */
|
||||
desc = (struct spdk_blob_md_descriptor *)((uintptr_t)desc + sizeof(*desc) + desc->length);
|
||||
cur_desc += sizeof(*desc) + desc->length;
|
||||
if (cur_desc + sizeof(*desc) > sizeof(page->descriptors)) {
|
||||
break;
|
||||
}
|
||||
desc = (struct spdk_blob_md_descriptor *)((uintptr_t)page->descriptors + cur_desc);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -217,7 +217,7 @@ struct spdk_blob_md_page {
|
||||
uint32_t reserved0;
|
||||
|
||||
/* Descriptors here */
|
||||
uint64_t descriptors[509];
|
||||
uint8_t descriptors[4072];
|
||||
|
||||
uint32_t next;
|
||||
uint32_t crc;
|
||||
|
Loading…
Reference in New Issue
Block a user