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;