Module Name: src Committed By: martin Date: Wed Jul 14 18:56:05 UTC 2021
Modified Files: src/usr.sbin/sysinst: disks.c Log Message: When converting partitions from one scheme to another, never fail without providing (if requested) a proper error message. To generate a diff of this commit: cvs rdiff -u -r1.72 -r1.73 src/usr.sbin/sysinst/disks.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/sysinst/disks.c diff -u src/usr.sbin/sysinst/disks.c:1.72 src/usr.sbin/sysinst/disks.c:1.73 --- src/usr.sbin/sysinst/disks.c:1.72 Sun Jan 31 22:45:46 2021 +++ src/usr.sbin/sysinst/disks.c Wed Jul 14 18:56:05 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: disks.c,v 1.72 2021/01/31 22:45:46 rillig Exp $ */ +/* $NetBSD: disks.c,v 1.73 2021/07/14 18:56:05 martin Exp $ */ /* * Copyright 1997 Piermont Information Systems Inc. @@ -754,17 +754,23 @@ convert_scheme(struct pm_devs *p, bool i new_scheme = select_part_scheme(p, old_parts->pscheme, false, MSG_select_other_partscheme); - if (new_scheme == NULL) + if (new_scheme == NULL) { + if (err_msg) + *err_msg = INTERNAL_ERROR; return false; + } new_parts = new_scheme->create_new_for_disk(p->diskdev, 0, p->dlsize, is_boot_drive, NULL); - if (new_parts == NULL) + if (new_parts == NULL) { + if (err_msg) + *err_msg = MSG_out_of_memory; return false; + } convert_copy(old_parts, new_parts); - if (new_parts->num_part == 0) { + if (new_parts->num_part == 0 && old_parts->num_part != 0) { /* need to cleanup */ new_parts->pscheme->free(new_parts); return false;