Module Name: src
Committed By: mrg
Date: Wed May 26 04:28:15 UTC 2021
Modified Files:
src/sys/lib/libsa: disklabel.c
Log Message:
in getdisklabel() swap the other-endian disklabel, #ifdef LIBSA_DISKLABEL_EI
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/lib/libsa/disklabel.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/lib/libsa/disklabel.c
diff -u src/sys/lib/libsa/disklabel.c:1.11 src/sys/lib/libsa/disklabel.c:1.12
--- src/sys/lib/libsa/disklabel.c:1.11 Mon May 17 08:50:36 2021
+++ src/sys/lib/libsa/disklabel.c Wed May 26 04:28:15 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: disklabel.c,v 1.11 2021/05/17 08:50:36 mrg Exp $ */
+/* $NetBSD: disklabel.c,v 1.12 2021/05/26 04:28:15 mrg Exp $ */
/*-
* Copyright (c) 1993
@@ -54,6 +54,12 @@ getdisklabel(const char *buf, struct dis
elp = (const void *)(buf + DEV_BSIZE - sizeof(*dlp));
for (dlp = (const void *)buf; dlp <= elp;
dlp = (const void *)((const char *)dlp + sizeof(long))) {
+#if defined(LIBSA_DISKLABEL_EI)
+ if (dlp->d_magic == bswap32(DISKMAGIC) &&
+ dlp->d_magic2 == bswap32(DISKMAGIC)) {
+ disklabel_swap(__UNCONST(dlp), __UNCONST(dlp));
+ }
+#endif
if (dlp->d_magic != DISKMAGIC || dlp->d_magic2 != DISKMAGIC) {
if (msg == NULL)
msg = nolabel;