Re: git: 9b4c606b96ce - main - bsdinstall/partedit: Fix UFS auto partitioning

From: Enji Cooper <yaneurabeya_at_gmail.com>
Date: Sat, 30 Apr 2022 18:03:45 UTC
> On Apr 29, 2022, at 5:20 PM, Shawn Webb <shawn.webb@hardenedbsd.org> wrote:
> 
> On Fri, Apr 29, 2022 at 11:24:56PM +0000, Alfonso S. Siciliano wrote:
>> The branch main has been updated by asiciliano:
>> 
>> URL: https://cgit.FreeBSD.org/src/commit/?id=9b4c606b96ce8a8b011dc50295c71c38741a0f4f
>> 
>> commit 9b4c606b96ce8a8b011dc50295c71c38741a0f4f
>> Author:     Alfonso S. Siciliano <asiciliano@FreeBSD.org>
>> AuthorDate: 2022-04-29 23:19:30 +0000
>> Commit:     Alfonso S. Siciliano <asiciliano@FreeBSD.org>
>> CommitDate: 2022-04-29 23:24:23 +0000
>> 
>>    bsdinstall/partedit: Fix UFS auto partitioning
>> 
>>    Fix bsdinstall "Auto (UFS) Guided Disk Setup" and sade(8) "Auto".
>>    The problem is a string comparison failure, it arose during the
>>    dialog(3)/bsddialog(3) form conversion:
>> 
>>     * dialog uses only form.text while bsdialog differentiates between
>>       form.init and form.value.
>>     * dialog always allocates memory for form values while bsddialog only
>>       when a button is pressed.
>> 
>>    Reviewed by:            bapt
>>    Differential Revision:  https://reviews.freebsd.org/D35033
>> ---
>> usr.sbin/bsdinstall/partedit/gpart_ops.c | 6 ++++++
>> 1 file changed, 6 insertions(+)
>> 
>> diff --git a/usr.sbin/bsdinstall/partedit/gpart_ops.c b/usr.sbin/bsdinstall/partedit/gpart_ops.c
>> index 65cda247e146..26aedb58ef39 100644
>> --- a/usr.sbin/bsdinstall/partedit/gpart_ops.c
>> +++ b/usr.sbin/bsdinstall/partedit/gpart_ops.c
>> @@ -1154,6 +1154,12 @@ addpartform:
>> 			init_allocated = true;
>> 			goto addpartform;
>> 		}
>> +	} else { /* auto partitioning */
>> +		items[0].value = strdup(items[0].init);
>> +		items[1].value = strdup(items[1].init);
>> +		items[2].value = strdup(items[2].init);
>> +		if (nitems > 3)
>> +			items[3].value = strdup(items[3].init);
>> 	}
>> 
>> 	/*
>> 
> 
> Hey Alfonso,
> 
> Would it be a good idea to check the return value of strdup in this
> particular case?

An assert would work here, but the program wouldn’t get very far. It would be nice if we had a macro or function that does this like (IIRC) some of the other BSDs do.
-Enji