trunk/src/mess/tools/imgtool/modules/bml3.c
| r25348 | r25349 | |
| 394 | 394 | ferr = read_granule(img, granule_list->granules[granule_list->granule_count-1], info->sector_size * (granule_list->last_granule_sectors - 1), info->sector_size, buf); |
| 395 | 395 | if (ferr) |
| 396 | 396 | return imgtool_floppy_error(ferr); |
| 397 | | for (last_sector_bytes = info->sector_size - 1; last_sector_bytes >= 0; last_sector_bytes--) { |
| 397 | for (last_sector_bytes = info->sector_size - 1; ; last_sector_bytes--) { |
| 398 | 398 | if (buf[last_sector_bytes] != 0) |
| 399 | 399 | break; |
| 400 | if (last_sector_bytes == 0) |
| 401 | break; |
| 400 | 402 | } |
| 401 | 403 | if (buf[last_sector_bytes] != 0x1a) { |
| 402 | 404 | last_sector_bytes++; |
| r25348 | r25349 | |
| 409 | 411 | } |
| 410 | 412 | |
| 411 | 413 | // TODO is it valid for last_sector_bytes == 0? |
| 412 | | if (last_sector_bytes < 0 || last_sector_bytes > info->sector_size) { |
| 414 | if (last_sector_bytes > info->sector_size) { |
| 413 | 415 | return IMGTOOLERR_CORRUPTIMAGE; |
| 414 | 416 | } |
| 415 | 417 | *size += last_sector_bytes; |