aboutsummaryrefslogtreecommitdiff
path: root/util-linux
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2026-02-01 14:36:06 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2026-02-01 14:36:06 +0100
commit3b19867d97cf4cac7d68e7edb7b18df12875c68b (patch)
treed81ba2a6e3babf81ab67e97e0acb846cde8d39b2 /util-linux
parent47775e8e6a28be04e5e6e1ec73b28cf429d4f001 (diff)
downloadbusybox-w32-3b19867d97cf4cac7d68e7edb7b18df12875c68b.tar.gz
busybox-w32-3b19867d97cf4cac7d68e7edb7b18df12875c68b.tar.bz2
busybox-w32-3b19867d97cf4cac7d68e7edb7b18df12875c68b.zip
fdisk: fix spurious warning about zero unused sectors
while at it, deindent nested for() function old new delta verify_sun 429 447 +18 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'util-linux')
-rw-r--r--util-linux/fdisk_sun.c64
1 files changed, 34 insertions, 30 deletions
diff --git a/util-linux/fdisk_sun.c b/util-linux/fdisk_sun.c
index d70bd111c..e9b9ffd11 100644
--- a/util-linux/fdisk_sun.c
+++ b/util-linux/fdisk_sun.c
@@ -414,40 +414,42 @@ verify_sun(void)
414{ 414{
415 start_and_len_t sl[8]; 415 start_and_len_t sl[8];
416 unsigned start, stop; 416 unsigned start, stop;
417 int i,j,k; 417 int i, j, k;
418 418
419 fetch_sun(sl, &start, &stop); 419 fetch_sun(sl, &start, &stop);
420 for (k = 0; k < 7; k++) { 420 for (k = 0; k < 7; k++) {
421 for (i = 0; i < 8; i++) { 421 for (i = 0; i < 8; i++) {
422 if (k && (sl[i].len % (g_heads * g_sectors))) { 422 if (k != 0
423 && (sl[i].len % (g_heads * g_sectors)) != 0
424 ) {
423 printf("Partition %u doesn't end on cylinder boundary\n", i+1); 425 printf("Partition %u doesn't end on cylinder boundary\n", i+1);
424 } 426 }
425 if (sl[i].len) { 427 if (sl[i].len == 0)
426 for (j = 0; j < i; j++) 428 continue;
427 if (sl[j].len) { 429 for (j = 0; j < i; j++) {
428 if (sl[j].start == sl[i].start + sl[i].len) { 430 if (sl[j].len == 0)
429 sl[j].start = sl[i].start; 431 continue;
430 sl[j].len += sl[i].len; 432 if (sl[j].start == sl[i].start + sl[i].len) {
431 sl[i].len = 0; 433 sl[j].start = sl[i].start;
432 } else if (sl[i].start == sl[j].start + sl[j].len) { 434 sl[j].len += sl[i].len;
433 sl[j].len += sl[i].len; 435 sl[i].len = 0;
434 sl[i].len = 0; 436 } else if (sl[i].start == sl[j].start + sl[j].len) {
435 } else if (!k) { 437 sl[j].len += sl[i].len;
436 if (sl[i].start < sl[j].start + sl[j].len 438 sl[i].len = 0;
437 && sl[j].start < sl[i].start + sl[i].len 439 } else if (k == 0
438 ) { 440 && sl[i].start < sl[j].start + sl[j].len
439 unsigned starto, endo; 441 && sl[j].start < sl[i].start + sl[i].len
440 starto = sl[i].start; 442 ) {
441 if (sl[j].start > starto) 443 unsigned starto, endo;
442 starto = sl[j].start; 444 starto = sl[i].start;
443 endo = sl[i].start + sl[i].len; 445 if (sl[j].start > starto)
444 if (sl[j].start + sl[j].len < endo) 446 starto = sl[j].start;
445 endo = sl[j].start + sl[j].len; 447 endo = sl[i].start + sl[i].len;
446 printf("Partition %u overlaps with others in " 448 if (sl[j].start + sl[j].len < endo)
447 "sectors %u-%u\n", i+1, starto, endo); 449 endo = sl[j].start + sl[j].len;
448 } 450 printf("Partition %u overlaps with others in "
449 } 451 "sectors %u-%u\n", i+1, starto, endo);
450 } 452 }
451 } 453 }
452 } 454 }
453 } 455 }
@@ -457,13 +459,15 @@ verify_sun(void)
457 printf("No partitions defined\n"); 459 printf("No partitions defined\n");
458 return; 460 return;
459 } 461 }
460 stop = g_cylinders * g_heads * g_sectors;
461 if (sl[0].start != 0) 462 if (sl[0].start != 0)
462 printf("Unused gap - sectors %u-%u\n", 0, sl[0].start); 463 printf("Unused gap - sectors %u-%u\n", 0, sl[0].start);
463 for (i = 0; i < 7 && sl[i+1].len != 0; i++) { 464 for (i = 0; i < 7 && sl[i+1].len != 0; i++) {
464 printf("Unused gap - sectors %u-%u\n", sl[i].start + sl[i].len, sl[i+1].start); 465 if (sl[i].start + sl[i].len < sl[i+1].start)
466 printf("Unused gap - sectors %u-%u\n",
467 sl[i].start + sl[i].len, sl[i+1].start);
465 } 468 }
466 start = sl[i].start + sl[i].len; 469 start = sl[i].start + sl[i].len;
470 stop = g_cylinders * g_heads * g_sectors;
467 if (start < stop) 471 if (start < stop)
468 printf("Unused gap - sectors %u-%u\n", start, stop); 472 printf("Unused gap - sectors %u-%u\n", start, stop);
469} 473}