Subject: port-i386/13137: fdisk -B unable to remove bootselect labels for deleted partitions
To: None <gnats-bugs@gnats.netbsd.org>
From: None <joff@newmonics.com>
List: netbsd-bugs
Date: 06/07/2001 16:37:15
>Number:         13137
>Category:       port-i386
>Synopsis:       fdisk -B unable to remove bootselect labels for deleted partitions
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jun 07 16:36:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Jesse Off
>Release:        1.5.1_BETA2
>Organization:
	NewMonics, Inc.
>Environment:
System: NetBSD vast 1.5.1_BETA2 NetBSD 1.5.1_BETA2 (VAST) #6: Wed Jun 6 15:58:48 MST 2001 joff@vast:/u/src/sys/arch/i386/compile/VAST i386


>Description:
	fdisk -B does not let you remove obsolete labels for UNUSED
	partitions in the mbr after they have been marked UNUSED.
	Hence, when a user deletes an operating system and removes
	it's partition, there is no way to delete option from bootup
	screen without major hackery.

>How-To-Repeat:
	Create a partition, install an OS (lets say Linux) on that
	partition and label it for mbr_bootsel (perhaps call it
	"RedHat") using fdisk.  Then, delete the partition ( make
	it <UNUSED>) using NetBSD fdisk.  Then, try to remove
	"RedHat" from the bootselect options by using "fdisk -B".
	Notice that fdisk will not let you because before it lets
	you modify the label string, it makes a check to make sure
	the partition is valid.  Since the partition is deleted, it 
	will not let you change the label string.

>Fix:
The following patch removes the check to see if the entry is invalid,
thereby letting the user input a blank string and removing the
option from the bootselect display. 


Index: fdisk.c
===================================================================
RCS file: /cvsroot/basesrc/sbin/fdisk/fdisk.c,v
retrieving revision 1.41
diff -u -r1.41 fdisk.c
--- fdisk.c     2000/06/14 19:35:50     1.41
+++ fdisk.c     2001/06/07 23:19:48
@@ -794,11 +794,6 @@
                        item = -1;
                        continue;
                }
-               if (mboot.parts[item].mbrp_typ == 0) {
-                       printf("The partition entry is unused\n");
-                       item = -1;
-                       continue;
-               }

                printf("Enter descriptions (max. 8 characters): ");
                rewind(stdin);
>Release-Note:
>Audit-Trail:
>Unformatted: