diff options
author | Christian Lamparter <chunkeey@gmail.com> | 2017-11-19 17:19:21 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2017-12-08 19:54:16 +0100 |
commit | 4e3f6dae04fb526a78e613db6c65aee584403d36 (patch) | |
tree | fbbfcb2fdeb8a7cee4957c0049173b4612961a9d /package/system | |
parent | 96b485ec7a292988cb8b44a2831b3a32d68c738f (diff) | |
download | upstream-4e3f6dae04fb526a78e613db6c65aee584403d36.tar.gz upstream-4e3f6dae04fb526a78e613db6c65aee584403d36.tar.bz2 upstream-4e3f6dae04fb526a78e613db6c65aee584403d36.zip |
base-files: upgrade: make get_partitions() endian agnostic
This patch fixes two issues with the current get_partitions()
function.
First: "Invalid partition table on $disk" will pop up on
legitimate images on big endian system.
This is because the little-endian representation of "55 AA" is
assumed in the context of little-endian architectures. On these
comparing it to the 16-bit word 0xAA55 does work as intented.
Whereas on big-endian systems, this would have to be 0x55AA.
This patch fixes the issue by replacing the integer conversion
and value match check with just a string comparision.
Second: The extraction of the type, start LBA and LBA num from
the partition table has the same endianness issue. This has been
fixed by using the new hex_le32_to_cpu() function. This function
will translate the stored little-endian data to the correct
byte-order if necessary.
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Diffstat (limited to 'package/system')
0 files changed, 0 insertions, 0 deletions