[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