MLK-19969 fastboot: write to wrong position when size bigger than 4GB
chunk_data_sz = sparse_header->blk_sz * chunk_header->chunk_sz; All is uint32. chunk_data_sz may be bigger than 4G. Change chunk_data_sz to 64bit. force chunk_header->chunk_sz and sparse_header->blk_sz to 64bit. Signed-off-by: Frank Li <Frank.Li@nxp.com> Acked-by: Ye Li <Ye.Li@nxp.com>
This commit is contained in:
parent
e9b7faa159
commit
0809067062
|
|
@ -59,7 +59,7 @@ void write_sparse_image(
|
|||
uint32_t bytes_written = 0;
|
||||
unsigned int chunk;
|
||||
unsigned int offset;
|
||||
unsigned int chunk_data_sz;
|
||||
uint64_t chunk_data_sz;
|
||||
uint32_t *fill_buf = NULL;
|
||||
uint32_t fill_val;
|
||||
sparse_header_t *sparse_header;
|
||||
|
|
@ -130,7 +130,7 @@ void write_sparse_image(
|
|||
sizeof(chunk_header_t));
|
||||
}
|
||||
|
||||
chunk_data_sz = sparse_header->blk_sz * chunk_header->chunk_sz;
|
||||
chunk_data_sz = (uint64_t)sparse_header->blk_sz * (uint64_t)chunk_header->chunk_sz;
|
||||
blkcnt = chunk_data_sz / info->blksz;
|
||||
switch (chunk_header->chunk_type) {
|
||||
case CHUNK_TYPE_RAW:
|
||||
|
|
|
|||
Loading…
Reference in New Issue