jan damborsky wrote:
> Hi Sarah,
>
>
> On 04/06/09 16:18, Sarah Jelinek wrote:
>> jan damborsky wrote:
>>> Hi Sarah,
>>>
>>>
>>> On 04/06/09 15:18, Sarah Jelinek wrote:
>>>> jan damborsky wrote:
>>>>> Hi Joe,
>>>>>
>>>>>
>>>>> On 04/06/09 13:57, Joseph J VLcek wrote:
>>>>>> Hi Jan,
>>>>>>
>>>>>> Thank you for making the changes.
>>>>>>
>>>>>> Sundar's question about invoking ls_init() made me realize one 
>>>>>> more issue.
>>>>>>
>>>>>>
>>>>>> usr/src/cmd/auto-install/auto_install.c
>>>>>> ----------------------------------------
>>>>>>
>>>>>> 1628 if (ls_init_attr != NULL)
>>>>>>
>>>>>> I believe this check, done on line 1628 for ls_init_attr != NULL, 
>>>>>> should also be done before line:
>>>>>>
>>>>>> 1623 nvlist_free(ls_init_attr);
>>>>>
>>>>> You are right - good point. I have added that check.
>>>>>
>>>> Actually, the check for NULL isn't necessary. If you look at the 
>>>> nvlist_free() code, it checks for NULL and does the right thing. 
>>>> Either way is fine with me, I just wanted to point this out.
>>>
>>> This is a good point. I would prefer to remove those
>>> checks. But I am not sure we could rely on this behavior
>>> since man page for nvlist_free(3NVPAIR) doesn't mention
>>> this. Please let me know what you think.
>> Hi Jan,
>>
>> I looked at the arc case to see if they documented this behavior, 
>> they don't specifically document that if it is a NULL value no 
>> operation occurs. This case was filed in 2000 and this code has been 
>> in there for a while. I think that we can rely on this behavior since 
>> it has been for this long. It is my opinion it isn't likely to 
>> change. You could file a man page bug so that this gets documented 
>> properly, much like free(NULL) behavior is documented.
>
> Thank you very much for digging into this -
> based on your observations it seems that it is save
> to change the code. I will file bug for man page.
>
>>
>> Also, looking at your code, it doesn't seem to me that we would ever 
>> have a case where the list could be non-NULL at any point you are 
>> checking. Even if ls_init() failed it doesn't NULL and free the 
>> passed in list.
>
> Actually, ls_init_attr is not NULL only if debug mode is enabled -
> otherwise it is initialized to NULL on line 1560.
> If anything changes in that area (which seems unlikely at this point),
> we would realize it soon :-)
>
Ah ok..
>>
>> Bottom line.. I don't think we need to check for NULL before freeing 
>> the list.
>
> I have changed the code and removed checks for NULL.
>
> Thanks a lot !

You are welcome.

sarah
****
>
> Jan
>


Reply via email to