PRT_make() can just zap the destination dos_partition if the
authorkrw <krw@openbsd.org>
Tue, 18 Jan 2022 19:37:27 +0000 (19:37 +0000)
committerkrw <krw@openbsd.org>
Tue, 18 Jan 2022 19:37:27 +0000 (19:37 +0000)
source prt has prt_ns == 0 or prt_id == DOSPTYP_UNUSED.

No functional change.

sbin/fdisk/part.c

index 3dd5ee8..f7525ba 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: part.c,v 1.110 2021/10/18 20:27:32 krw Exp $  */
+/*     $OpenBSD: part.c,v 1.111 2022/01/18 19:37:27 krw Exp $  */
 
 /*
  * Copyright (c) 1997 Tobias Weingartner
@@ -313,6 +313,11 @@ PRT_make(const struct prt *prt, const uint64_t lba_self, const uint64_t lba_firs
        uint64_t                off, t;
        uint32_t                ecyl, scyl;
 
+       if (prt->prt_ns == 0 || prt->prt_id == DOSPTYP_UNUSED) {
+               memset(dp, 0, sizeof(*dp));
+               return;
+       }
+
        scyl = (prt->prt_scyl > 1023) ? 1023 : prt->prt_scyl;
        ecyl = (prt->prt_ecyl > 1023) ? 1023 : prt->prt_ecyl;