Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

fbdev: of_display_timing: Fix device node reference leak in of_get_display_timings()

Use for_each_child_of_node_scoped instead of for_each_child_of_node
to ensure automatic of_node_put on early exit paths, preventing
device node reference leak.

Fixes: cc3f414cf2e4 ("video: add of helper for display timings/videomode")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Signed-off-by: Helge Deller <deller@gmx.de>

authored by

Felix Gu and committed by
Helge Deller
c39ee2d2 c595c196

+3 -3
+3 -3
drivers/video/of_display_timing.c
··· 195 195 disp->num_timings = 0; 196 196 disp->native_mode = 0; 197 197 198 - for_each_child_of_node(timings_np, entry) { 198 + for_each_child_of_node_scoped(timings_np, child) { 199 199 struct display_timing *dt; 200 200 int r; 201 201 ··· 206 206 goto timingfail; 207 207 } 208 208 209 - r = of_parse_display_timing(entry, dt); 209 + r = of_parse_display_timing(child, dt); 210 210 if (r) { 211 211 /* 212 212 * to not encourage wrong devicetrees, fail in case of ··· 218 218 goto timingfail; 219 219 } 220 220 221 - if (native_mode == entry) 221 + if (native_mode == child) 222 222 disp->native_mode = disp->num_timings; 223 223 224 224 disp->timings[disp->num_timings] = dt;