[bug report] lib: sparse: Make CHUNK_TYPE_RAW buffer aligned

Hello qianfan Zhao,
The patch 62649165cb02: "lib: sparse: Make CHUNK_TYPE_RAW buffer aligned" from Nov 16, 2021, leads to the following Smatch static checker warning:
lib/image-sparse.c:214 write_sparse_image() warn: unsigned 'blks' is never less than zero.
lib/image-sparse.c 109 int write_sparse_image(struct sparse_storage *info, 110 const char *part_name, void *data, char *response) 111 { 112 lbaint_t blk; 113 lbaint_t blkcnt; 114 lbaint_t blks; ^^^^^^^^^^^^^ This is a u64
115 uint64_t bytes_written = 0; 116 unsigned int chunk; 117 unsigned int offset; 118 uint64_t chunk_data_sz; 119 uint32_t *fill_buf = NULL; 120 uint32_t fill_val; 121 sparse_header_t *sparse_header; 122 chunk_header_t *chunk_header; 123 uint32_t total_blocks = 0; 124 int fill_buf_num_blks; 125 int i; 126 int j; 127 128 fill_buf_num_blks = CONFIG_IMAGE_SPARSE_FILLBUF_SIZE / info->blksz;
[ snip ]
211 212 blks = write_sparse_chunk_raw(info, blk, blkcnt, 213 data, response); --> 214 if (blks < 0) ^^^^^^^^ Can't be less than zero
215 return -1; 216 217 blk += blks; 218 bytes_written += ((u64)blkcnt) * info->blksz; 219 total_blocks += chunk_header->chunk_sz; 220 data += chunk_data_sz; 221 break; 222 223 case CHUNK_TYPE_FILL: 224 if (chunk_header->total_sz !=
regards, dan carpenter
participants (1)
-
Dan Carpenter