drivers: soc: sunxi: Fix possible null pointer dereference
PATCH 1/1 drivers: soc: sunxi: Fix possible null pointer dereference
of_get_address() may return NULL which is later dereferenced. Fix this bug by adding NULL check
This is similar to the commit c534b63bede6 ("drm: vc4: Fix possible null pointer dereference").
Signed-off-by Chenyuan Yang <[email protected]>
Fixes 4af34b572a85 ("drivers: soc: sunxi: Introduce SoC driver to map SRAMs")
--- drivers/soc/sunxi/sunxi_sram.c | 4 ++++ 1 file changed, 4 insertions(+)
drivers/soc/sunxi/sunxi_sram.c +4 -0
@@ -122,6 +122,8 @@ static int sunxi_sram_show(struct seq_file *s, void *data)continue ; sram_addr_p =of_get_address (sram_node,0 ,NULL ,NULL ); +if (!sram_addr_p) +continue ;seq_printf (s,"sram@%08x\n" ,be32_to_cpu (*sram_addr_p));
@@ -134,6 +136,8 @@ static int sunxi_sram_show(struct seq_file *s, void *data) section_addr_p =of_get_address (section_node,0 ,NULL ,NULL ); +if (!section_addr_p) +continue ; seq_printf(s, "\tsection@%04x\t(%s)\n", be32_to_cpu(*section_addr_p),
Signature · 1 line
2.34.1
Quoted 8 lines · On Sat, 12 Apr 2025 11:57:00 -0500 Chenyuan Yang <[email protected]> wrote:
of_get_address()may return NULL which is later dereferenced. Fix this bug by adding NULL checkThis is similar to the commit
c534b63bede6("drm: vc4: Fix possible null pointer dereference").Signed-off-by Chenyuan Yang <[email protected]>Fixes 4af34b572a85 ("drivers: soc: sunxi: Introduce SoC driver to map SRAMs")
That fix looks alright, indeed of_get_address() returns NULL if the slightest bit in the property is not as expected, and we should check for that.
I am just wondering if we should issue a firmware warning in this case, instead of just silently skipping an entry.
Cheers,
Andre
Quoted 26 lines
--- drivers/soc/sunxi/sunxi_sram.c | 4 ++++ 1 file changed, 4 insertions(+)drivers/soc/sunxi/sunxi_sram.c +4
-0@@ -122,6 +122,8 @@ static int sunxi_sram_show(struct seq_file *s, void *data)continue ; sram_addr_p =of_get_address (sram_node,0 ,NULL ,NULL ); +if (!sram_addr_p) +continue ;seq_printf (s,"sram@%08x\n" ,be32_to_cpu (*sram_addr_p));@@ -134,6 +136,8 @@ static int sunxi_sram_show(struct seq_file *s, void *data) section_addr_p =of_get_address (section_node,0 ,NULL ,NULL ); +if (!section_addr_p) +continue ; seq_printf(s, "\tsection@%04x\t(%s)\n", be32_to_cpu(*section_addr_p),