On 6/7/20 4:02 PM, Heinrich Schuchardt wrote:
> Am June 7, 2020 1:45:53 PM UTC schrieb Simon Glass <[email protected]>:
>> Hi Heinrich,
>>
>> On Thu, 4 Jun 2020 at 11:28, Heinrich Schuchardt <[email protected]>
>> wrote:
>>>
>>> assert() only works in debug mode. So checking a successful memory
>>> allocation should not use assert().
>>>
>>
>> Reviewed-by: Simon Glass <[email protected]>
>>
>> What sort of environment are you using that returns NULL in this case?
>
> You will get NULL here if mmap() fails. This should happen if your machine 
> has less then 128 MiB left over or you increase the RAM size of the sandbox.
>
> For testing I suggest you increase the sandbox memory size beyond the RAM and 
> swap size of your computer.
>
> Best regards
>
> Heinrich

An excessive RAM sandbox w/o the patch:

$ ./u-boot
Segmentation fault

with the patch

$ ./u-boot
Out of memory

Best regards

Heinrich

>
>>
>> Regards,
>> Simon
>>
>>
>>> Signed-off-by: Heinrich Schuchardt <[email protected]>
>>> ---
>>>  arch/sandbox/cpu/state.c | 5 ++++-
>>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/sandbox/cpu/state.c b/arch/sandbox/cpu/state.c
>>> index 1f794123b3..34b6fff7e7 100644
>>> --- a/arch/sandbox/cpu/state.c
>>> +++ b/arch/sandbox/cpu/state.c
>>> @@ -378,7 +378,10 @@ int state_init(void)
>>>
>>>         state->ram_size = CONFIG_SYS_SDRAM_SIZE;
>>>         state->ram_buf = os_malloc(state->ram_size);
>>> -       assert(state->ram_buf);
>>> +       if (!state->ram_buf) {
>>> +               printf("Out of memory\n");
>>> +               os_exit(1);
>>> +       }
>>>
>>>         state_reset_for_test(state);
>>>         /*
>>> --
>>> 2.26.2
>>>
>

Reply via email to