Hi,
Am 01.06.2022 um 14:59 schrieb Michal Simek:
On 6/1/22 14:27, Stefan Herbrechtsmeier wrote:
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.herbrechtsme...@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.herbrechtsme...@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] = "";
Try to remove = "".
The = "" is needed to skip the processing on the second run.
Undefined variables should be placed to bss section.
A = "zu" will also move the variable to an other section.
+ 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.
Ok. I see. It become the first variable in bss section.
Should I resend the patch with null replaced by 0?
Regard
Stefan