Module Name: src Committed By: mlelstv Date: Tue Nov 22 00:25:52 UTC 2022
Modified Files: src/sbin/gpt: gpt.c resizedisk.c Log Message: Big-Endian fixes. To generate a diff of this commit: cvs rdiff -u -r1.83 -r1.84 src/sbin/gpt/gpt.c cvs rdiff -u -r1.19 -r1.20 src/sbin/gpt/resizedisk.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sbin/gpt/gpt.c diff -u src/sbin/gpt/gpt.c:1.83 src/sbin/gpt/gpt.c:1.84 --- src/sbin/gpt/gpt.c:1.83 Sun Nov 20 11:57:02 2022 +++ src/sbin/gpt/gpt.c Tue Nov 22 00:25:52 2022 @@ -35,7 +35,7 @@ __FBSDID("$FreeBSD: src/sbin/gpt/gpt.c,v 1.16 2006/07/07 02:44:23 marcel Exp $"); #endif #ifdef __RCSID -__RCSID("$NetBSD: gpt.c,v 1.83 2022/11/20 11:57:02 mlelstv Exp $"); +__RCSID("$NetBSD: gpt.c,v 1.84 2022/11/22 00:25:52 mlelstv Exp $"); #endif #include <sys/param.h> @@ -578,6 +578,7 @@ gpt_open(const char *dev, int flags, int if (found) { struct map *map; struct gpt_hdr *hdr; + uint64_t lba; /* * read secondary GPT from position stored in primary header @@ -585,8 +586,9 @@ gpt_open(const char *dev, int flags, int */ map = map_find(gpt, MAP_TYPE_PRI_GPT_HDR); hdr = map ? map->map_data : NULL; - if (hdr && hdr->hdr_lba_alt > 0 && hdr->hdr_lba_alt < (uint64_t)devsz) { - if (gpt_gpt(gpt, (off_t)hdr->hdr_lba_alt, found) == -1) + lba = le64toh(hdr->hdr_lba_alt); + if (hdr && lba > 0 && lba < (uint64_t)devsz) { + if (gpt_gpt(gpt, (off_t)lba, found) == -1) goto close; } } else { Index: src/sbin/gpt/resizedisk.c diff -u src/sbin/gpt/resizedisk.c:1.19 src/sbin/gpt/resizedisk.c:1.20 --- src/sbin/gpt/resizedisk.c:1.19 Sun Nov 20 11:57:02 2022 +++ src/sbin/gpt/resizedisk.c Tue Nov 22 00:25:52 2022 @@ -33,7 +33,7 @@ __FBSDID("$FreeBSD: src/sbin/gpt/add.c,v 1.14 2006/06/22 22:05:28 marcel Exp $"); #endif #ifdef __RCSID -__RCSID("$NetBSD: resizedisk.c,v 1.19 2022/11/20 11:57:02 mlelstv Exp $"); +__RCSID("$NetBSD: resizedisk.c,v 1.20 2022/11/22 00:25:52 mlelstv Exp $"); #endif #include <sys/bootblock.h> @@ -194,7 +194,7 @@ resizedisk(gpt_t gpt, off_t sector, off_ } hdr = gpt->gpt->map_data; - hdr->hdr_lba_alt = (uint64_t)gpt->tpg->map_start; + hdr->hdr_lba_alt = htole64((uint64_t)gpt->tpg->map_start); hdr->hdr_crc_self = 0; hdr->hdr_lba_end = htole64((uint64_t)(gpt->lbt->map_start - 1)); hdr->hdr_crc_self =