[PATCH] xilinx: zynqmp: Do not use null as spl bss start address
Stefan Herbrechtsmeier
stefan.herbrechtsmeier-oss at weidmueller.com
Wed Jun 1 14:27:53 CEST 2022
Hi,
Am 01.06.2022 um 13:59 schrieb Michal Simek:
> Hi,
>
> first of all subject is not accurate. We are not using null as start but
> address 0.
I will replace null with 0.
>
> On 6/1/22 12:55, Stefan Herbrechtsmeier wrote:
>> [CAUTION: External Email]
>>
>> From: Stefan Herbrechtsmeier <stefan.herbrechtsmeier at weidmueller.com>
>>
>> Do not use null as address for memory because of the special meaning for
>> pointers. Change the spl bss start address to the second page.
>>
>> Signed-off-by: Stefan Herbrechtsmeier
>> <stefan.herbrechtsmeier at weidmueller.com>
>>
>> ---
>> The problem was discovered with a static char array initialized with an
>> empty string.
>
> It means your code is doing wrong pointer arithmeticians which pointed
> to BSS section and overwrites there something. What is that code doing?
I like to call the zynqmp_get_silicon_idcode_name function from my board
code and therefore rework the function to return static memory to avoid
a memory allocation on each call.
- char name[ZYNQMP_VERSION_SIZE];
+ static char name[ZYNQMP_VERSION_SIZE] = "";
+ if (name[0])
+ return name;
- return strdup(name);
+ return name;
The name variable gets the address 0 which means that snprintf and
strncat do nothing because the dest pointer and NULL are equal.
Regards
Stefan
More information about the U-Boot
mailing list