- int bad_len = MIN(mtdoffset, limit) - blockstart;
- dump_bad(&meminfo, bad_len, !(opts & OPT_o));
+ if (bb_method == BB_PADBAD) {
+ /* dump FF padded bad block */
+ int bad_len = MIN(mtdoffset, limit) - blockstart;
+ dump_bad(&meminfo, bad_len, opts & OPT_o);
+ } else if (bb_method == BB_SKIPBAD) {
+ /* for skipbad, increase the length */
+ if ((end_addr + mtdoffset - blockstart) > end_addr)
+ end_addr += (mtdoffset - blockstart);
+ else
+ end_addr = ~0;
+ limit = MIN(meminfo.size, end_addr);
+ }