Age | Commit message (Collapse) | Author |
|
Issue reported by Alexi Malinin via bugs@. Thanks!
|
|
Makes 'reinit' respect current state of disk when deciding between
MBR and GPT initialization.
Problem noted by halex@
|
|
ok krw
|
|
messages to GPT.
Unchecked strdup() result noted by mestre@. ok mestre@ tim@
|
|
leaking. Refactor logic a bit to avoid leak and make logic clearer.
Noticed by (and initial diff from) mestre@ and his friend clang.
|
|
information under the '-v' flag. This brings the GPT display more
into line with the MBR display and simplifies and hardens the parsing
of the partition info in the install scripts.
Original problem with install scripts parsing hand edited GPT
information reported by Valere Monseur via bugs@.
Man page fixes and tweaks from jmc@.
Install script changes tested & ok rpe@.
|
|
default; OK krw@
|
|
Suggested by & ok tim@
|
|
by presenting the existing offset and size as the defaults. Enhance
getuint64() to take a minimum value as ask_num() does. Use this to
ensure that GPT partitions are constrained to the valid area of the
disk. Leave MBR partition constraints alone for the moment.
Original problem(s) noted by tim@
|
|
and Xgedit() to a new mechanism. Keep a copy of the old partition
and compare final edited version to that to decide if it is dirty.
Fixes a number of (but not all!) nits in editing partitions.
Original problem(s) noted by, suggestions from, much testing and
ok tim@
|
|
table is marked dirty so that it gets written when "quit" is issued.
This commit contains the MBR part of the fix only. The GPT code needs a few
adjustments before the GPT part can be fixed properly.
OK krw@
|
|
included only for DEV_BSIZE. Use INT64_MAX instead of LLONG_MAX
so stdint.h is enough. General tidying up of #include sections.
ok GCC
|
|
|
|
and saving the fd in the global 'disk' structure. Stop passing around
fd's and just use the global.
Makes pledge() feasible.
Prompted by and ok deraadt@
|
|
in the GPT partition structure. And don't run off the end of the
name buffer by confusing sizeof() with the number of elements in
an array. Use the new GPTPARTNAMESIZE #define instead. While here,
zap the old partition name before setting the new one, lest a short
new name leave bits of an old long name in place.
Originally spotted by jsg@ and his friend cppcheck.
ok jsg@ for slightly different version.
|
|
|
|
once inside MBR_print().
|
|
to obtain GPT partition names. Tweak ask_pid() to take low/high
bounds so it can handle 1-ff (MBR) or 1000-ffff (GPT) partition
pids as required. A pid of '0' is still special and disables the
partition.
No visible or intentional functional change.
|
|
to 64 bits, adjusting printf()'s, etc. as required. Preparing for
GPT partitions. Add 't' size unit. No other intentional functional
change.
|
|
to get the location. disk.size is a 32 bit value for MBR use. Use
DL_GETDSIZE(&dl) to get the real location even on 'big' disks.
|
|
make the initial mbr that tt pointed at a global that can be directly
accessed in the couple of places it is needed.
Fewer parameters, less confusion, no functional change.
|
|
Just use the offset recorded/parsed in the struct mbr being used.
Can still traverse/edit extended MBRs so offset really wasn't needed.
Fewer parameters, less confusion, no functional change.
|
|
There is only one disk being worked on, so just make it a global.
Fewer parameters, less confusion, no functional change.
|
|
not checked to void. Use continue inside a do loop instead of a
goto to the top. Move a #define/#undef more local to use. Eliminate
some lint.
General cleanup of things noticed preparing the big churn.
No intentional functional change.
|
|
With the permission of Toby.
ok deraadt@
|
|
written does not contain an EFI partition, zap any GPT signature
found on the 2nd (LBA 1) and last sectors on the disk. The install
script uses this sequence.
This is a temporary workaround until more GPT support is imported
post-5.7.
Should fix at least some machines who insist on using the GPT even
after we have overritten the 'protective' MBR.
ok deraadt@ tedu@ beck@ millert@
|
|
'User_modify' to 'USER_edit' for the same reason.
|
|
of an intermediate variable. No intended functional change.
|
|
|
|
eliminate multiple 'implicit' declarations introduced by the previous
over-zealous #include cleanup.
Thanks to to tedu@ for pointing out how -Wall reveals all.
|
|
#include in *.h files in favour of listing them as required in the *.c
files. Fix error message to correctly state that 64 is the minimum
value for -l. Use errx() where errno is not relevant. Use 'continue'
rather than a label to go back to start of a loop.
No intentional functional change.
|
|
for any missing geometry.
|
|
|
|
Inspired by guenther@.
|
|
need to record two sets of metric/geometry data. Use 'geometry'
instead of 'metrics' in names and comments. Eliminate
DISK_getmetrics().
While here, make 64 the minimal valid value for '-l' instead of 1. This
avoids the possibility of having 0 cylinders.
No intentional functional change.
Feedback & tweak from chris@
|
|
implementing that command, a pointer to the command arguments is the
only thing needed. No need to have a pointer to the command table in
every command, since there is only one table. No need for shiney new
stack space for every command name and arguments parsed, since we
don't recurse we can just use static memory.
No intentional functional change.
|
|
'struct dos_mbr' variables, since that is what the buffers were used
for. Removes need to know about DEV_BSIZE and thus include param.h
from all files but one so move the param.h #include to that file
(mbr.c).
Nuke a bunch of local MBR #defines in favour of the disklabel.h ones.
Remove a bunch of unneeded #includes, replace the odd malloc/bzero
with calloc, replace equally odd bcopy's with memcpy, remove a stray
duplicate MBR parsing in MBR_pcopy().
No intentional functional change.
|
|
abstraction. Call a 'struct' a 'struct' and not a pony.
No functional change.
idea ok deraadt@
|
|
|
|
great for removing an include of <machine/param.h>
This needs further cleanup if someone has time.
|
|
capablity by using help text as regular prompt for 'size' and
'offset'. Try to detect and handle more overflow/underflow conditions
in getuint() and ensure returned value is always within requested
bounds. Handle zero-length partitions by treating them as UNUSED.
tested & ok halex@
|
|
is now superflous. With rounding gone the offset parameter is
similarly superfluous. Simply getuint() accordingly.
|
|
units handling by copying getuint() from disklabel. MBR partition id
and disklabel partition type are different beasts. So deciding to
round off a MBR partition with id FS_BSDFFS meant rounding off
NTFS partitions. And FS_SWAP partitions meant DOS FAT 12. So just
nuke rounding off for now to simplify getuint().
ok beck@
|
|
partition numbers.
|
|
are thus avoided. Since bounds are now reliable don't check the
returned value for being in-bounds. Since default value is
forced inside bounds, don't bother being tricky and passing a
default that is outside the bounds being specified.
ok beck@
|
|
are all constants. Independantly suggested by guenther@.
|
|
ask_num() function. Remove now unneeded 'flags' and 'help' parameters
from both. Display out of range values in hex in ask_pid(), since
we are seeking hex input.
ok guenther@
|
|
duplicating the code. Allows simplification of the EDIT() #define
in Xedit() since we always ASK_DEC and use a NULL help parameter when
invoking ask_num().
|
|
A #define to simplify a function calling snippet does not simply or
help when it is used only once.
|
|
strtonum(). Make related error messages consistant.
ok haesbaert@
|