On 29 May 2016 at 02:43, Jonathan Gray <[email protected]> wrote:
> On Sat, May 28, 2016 at 05:38:31PM -0600, Theo de Raadt wrote:
>> CVSROOT: /cvs
>> Module name: src
>> Changes by: [email protected] 2016/05/28 17:38:31
>>
>> Modified files:
>> sbin/disklabel : disklabel.c
>>
>> Log message:
>> back out previous; -wAT template vnd0 fails
>>
>
> The change that was backed out also broke ramdisk installs on armv7:
>
> Use (A)uto layout, (E)dit auto layout, or create (C)ustom layout? [a]
> disklabel: unknown disk type: (null)
>
Bob's diff was slightly flawed. I sent a 'fixed' version to them but
not generally since I don't really know what the point of the original
diff was. Attached if it is of use while they ponder it.
.... Ken
Index: disklabel.c
===================================================================
RCS file: /cvs/src/sbin/disklabel/disklabel.c,v
retrieving revision 1.214
diff -u -p -r1.214 disklabel.c
--- disklabel.c 25 Nov 2015 17:17:38 -0000 1.214
+++ disklabel.c 29 May 2016 00:25:48 -0000
@@ -211,6 +211,7 @@ main(int argc, char *argv[])
&specname);
if (f < 0)
err(4, "%s", specname);
+ readlabel(f);
if (autotable != NULL)
parse_autotable(autotable);
@@ -219,19 +220,16 @@ main(int argc, char *argv[])
case EDIT:
if (argc != 1)
usage();
- readlabel(f);
error = edit(&lab, f);
break;
case EDITOR:
if (argc != 1)
usage();
- readlabel(f);
error = editor(f);
break;
case READ:
if (argc != 1)
usage();
- readlabel(f);
if (pledge("stdio", NULL) == -1)
err(1, "pledge");
@@ -245,7 +243,6 @@ main(int argc, char *argv[])
case RESTORE:
if (argc < 2 || argc > 3)
usage();
- readlabel(f);
if (!(t = fopen(argv[1], "r")))
err(4, "%s", argv[1]);
error = getasciilabel(t, &lab);
@@ -261,9 +258,9 @@ main(int argc, char *argv[])
fclose(t);
break;
case WRITE:
- if (dflag || aflag) {
- readlabel(f);
- } else if (argc < 2 || argc > 3)
+ if (dflag || aflag)
+ ;
+ else if (argc < 2 || argc > 3)
usage();
else
makelabel(argv[1], argc == 3 ? argv[2] : NULL, &lab);