24 Oct, 2017
1 commit
-
don't use prettyprint_part_size() in create_gpt_partitions_list()
that avoid to align offset and size to 1 MiB and increase precision for
start and size.
This patch avoid the risk to change partition size and lost data during
rename or swap.Signed-off-by: Patrick Delaunay
Acked-by: Stephen Warren
Tested-by: Stephen Warren
07 Oct, 2017
1 commit
-
The recent changes to these files did not completely fix the previous
issues, or introduced different (minor) issues. In cmd/gpt.c we need to
dereference str_disk_guid to be sure that malloc worked. In
cmd/nvedit.c we need to be careful that we can also fit in that leading
space when adding to the string. And in tools/fit_image.c we need to
re-work the error handling slightly in fit_import_data() so that we only
call munmap() once. We have two error paths here, one where we have an
fd to close and one where we do not. Adjust labels to match this.Reported-by: Coverity (CID: 167366, 167367, 167370)
Signed-off-by: Tom Rini
06 Oct, 2017
1 commit
-
Create a common exit for most of the error handling code in
do_rename_gpt_parts. Delete the list elements in disk_partitions
before calling INIT_LIST_HEAD from get_gpt_info() a second time.The SIZEOF_MISMATCH error is not addressed, since that problem was
already fixed by "GPT: incomplete initialization in
allocate_disk_part".Signed-off-by: Alison Chaiken
Reported-by: Coverity (CID: 167222, 167235, 167237)
Reviewed-by: Tom Rini
27 Sep, 2017
1 commit
-
memset(newpart, '\0', sizeof(newpart));
only initializes the firest 4 or 8 bytes of *newpart and not the whole
structure disk_part.We should use sizeof(struct disk_part).
Instead of malloc and memset we can use calloc.
Identified by cppcheck.
Fixes: 09a49930e41 GPT: read partition table from device into a data structure
Reported-by: Coverity (CID: 167228)
Cc: Stefan Roese
Signed-off-by: Heinrich Schuchardt
Reviewed-by: Stefan Roese
Reviewed-by: Simon Glass
16 Aug, 2017
2 commits
-
We are now using an env_ prefix for environment functions. Rename these
two functions for consistency. Also add function comments in common.h.Quite a few places use getenv() in a condition context, provoking a
warning from checkpatch. These are fixed up in this patch also.Suggested-by: Wolfgang Denk
Signed-off-by: Simon Glass -
We are now using an env_ prefix for environment functions. Rename setenv()
for consistency. Also add function comments in common.h.Suggested-by: Wolfgang Denk
Signed-off-by: Simon Glass
05 Aug, 2017
3 commits
-
Strings read from devices may sometimes fail to be
NULL-terminated. The functions in lib/string.c are subject to
failure in this case. Protect against observed failures in
set_gpt_info() by switching to length-checking variants with a length
limit of the maximum possible partition table length. At the same
time, add a few checks for NULL string pointers.Here is an example as observed in sandbox under GDB:
=> gpt verify host 0 $partitions
Program received signal SIGSEGV, Segmentation fault.
0x0000000000477747 in strlen (s=0x0) at lib/string.c:267
267 for (sc = s; *sc != '\0'; ++sc)
(gdb) bt
#0 0x0000000000477747 in strlen (s=0x0) at lib/string.c:267
#1 0x00000000004140b2 in set_gpt_info (str_part=,
str_disk_guid=str_disk_guid@entry=0x7fffffffdbe8, partitions=partitions@entry=0x7fffffffdbd8,
parts_count=parts_count@entry=0x7fffffffdbcf "", dev_desc=) at cmd/gpt.c:415
#2 0x00000000004145b9 in gpt_verify (str_part=, blk_dev_desc=0x7fffef09a9d0) at cmd/gpt.c:580
#3 do_gpt (cmdtp=, flag=, argc=, argv=0x7fffef09a8f0)
at cmd/gpt.c:783
#4 0x00000000004295b0 in cmd_call (argv=0x7fffef09a8f0, argc=0x5, flag=,
cmdtp=0x714e20 ) at common/command.c:500
#5 cmd_process (flag=, argc=0x5, argv=0x7fffef09a8f0,
repeatable=repeatable@entry=0x726c04 , ticks=ticks@entry=0x0) at common/command.c:539Suggested-by: Lothar Waßmann
Signed-off-by: Alison Chaiken -
This patch provides support in u-boot for renaming GPT
partitions. The renaming is accomplished via new 'gpt swap'
and 'gpt rename' commands.The 'swap' mode returns an error if no matching partition names
are found, or if the number of partitions with one name does not equal
the number with the second name. The 'rename' variant always
succeeds as long as a partition with the provided number exists.Rewriting the partition table has the side-effect that all partitions
end up with "msftdata" flag set. The reason is that partition type
PARTITION_BASIC_DATA_GUID is hard-coded in the gpt_fill_pte()
function. This does not appear to cause any harm.Signed-off-by: Alison Chaiken
-
Make the partition table available for modification by reading it from
the user-specified device into a linked list. Provide an accessor
function for command-line testing.Signed-off-by: Alison Chaiken
[trini: Make this depend on CMD_GPT_RENAME, as it is the user of this
code]
Signed-off-by: Tom Rini
04 Aug, 2017
1 commit
-
In order to read the GPT, modify the partition name strings, and then
write out a new GPT, the disk GUID is needed. While there is an
existing accessor for the partition UUIDs, there is none yet for the
disk GUID.Changes since v6: none.
Signed-off-by: Alison Chaiken
18 Mar, 2017
1 commit
-
Change GPT UUID string format from UUID to GUID per specification.
Signed-off-by: Vincent Tinelli
Reviewed-by: Simon Glass
28 Jan, 2017
1 commit
-
We convert CONFIG_PARTITION_UUIDS to Kconfig first. But in order to cleanly
update all of the config files we must also update CMD_PART and CMD_GPT to also
be in Kconfig in order to avoid complex logic elsewhere to update all of the
config files.Signed-off-by: Patrick Delaunay
Signed-off-by: Patrick Delaunay
Signed-off-by: Tom Rini
06 Aug, 2016
1 commit
-
The calculation of "dev_desc->lba - 34 - 1 - offset" is not correct for
size '-', because both fist_usable_lba and last_usable_lba will remain
34 sectors.We can simply use 0 for size '-' because the part_efi module will decode
the size and auto extend the size to maximum available size.Signed-off-by: Kever Yang
13 Jun, 2016
1 commit
-
This patch try to parse name=userdata,size=-,uuid=${uuid_gpt_userdata};
gpt mmc write 0 $partitions
gpt mmc verify 0 $partitionsSigned-off-by: Michael Trimarchi
Reviewed-by: Simon Glass
15 Mar, 2016
2 commits
-
The current name is too generic. Add a 'blk_' prefix to aid searching and
make its purpose clearer.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Stephen Warren -
Use 'struct' instead of a typdef. Also since 'struct block_dev_desc' is long
and causes 80-column violations, rename it to struct blk_desc.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Tested-by: Stephen Warren
25 Jan, 2016
1 commit
-
Now that they are in their own directory, we can remove this prefix.
This makes it easier to find a file since the prefix does not get in the
way.Signed-off-by: Simon Glass
Reviewed-by: Bin Meng
Reviewed-by: Heiko Schocher
Acked-by: Stefan Roese
Acked-by: Przemyslaw Marczak