On 5/14/26 10:24, Abdun Nihaal wrote:
This patchset fixes some memory leak issues present in fbdev drivers.

Since commit 56c134f7f1b5 ("fbdev: Track deferred-I/O pages in pageref struct")
fb_deferred_io_init() allocated memory for pagerefs and returned an
error code, but the existing drivers which call fb_deferred_io_init()
were not updated to do cleanup. The first three commits address this.
- fbdev: hecubafb: fix potential memory leak in hecubafb_probe()
- fbdev: broadsheetfb: fix potential memory leak in broadsheetfb_probe()
- fbdev: metronomefb: fix potential memory leak in metronomefb_probe()

Probe functions that call fb_add_videomode() or fb_videomode_to_modelist()
sometimes did not call fb_destry_modelist() to free the allocated
memory. The following patches address this issue.
- fbdev: radeon: fix potential memory leak in radeonfb_pci_register()
- fbdev: carminefb: fix potential memory leak in alloc_carmine_fb()
- fbdev: i740fb: fix potential memory leak in i740fb_probe()
- fbdev: nvidia: fix potential memory leak in nvidiafb_probe()
- fbdev: s3fb: fix potential memory leak in s3_pci_probe()
- fbdev: tdfxfb: fix potential memory leak in tdfxfb_probe()
- fbdev: tridentfb: fix potential memory leak in trident_pci_probe()
- fbdev: uvesafb: fix potential memory leak in uvesafb_probe()

Since commit 73ce73c30ba9 ("fbdev: Transfer video= option strings to caller; clarify 
ownership")
the fb_get_options() function transfers ownership of the memory
allocated for options, and so the caller is expected to free it. The
following two patches address this issue.
- fbdev: efifb: fix memory leak in efifb_probe()
- fbdev: vesafb: fix memory leak in vesafb_probe()

The following commit fixes a simple memory leak.
- fbdev: sm501fb: fix potential memory leak in sm501fb_probe()

All the patches were only compile tested.
The issues were found using static analysis.

Signed-off-by: Abdun Nihaal <[email protected]>
---
Abdun Nihaal (14):
       fbdev: hecubafb: fix potential memory leak in hecubafb_probe()
       fbdev: broadsheetfb: fix potential memory leak in broadsheetfb_probe()
       fbdev: metronomefb: fix potential memory leak in metronomefb_probe()
       fbdev: radeon: fix potential memory leak in radeonfb_pci_register()
       fbdev: carminefb: fix potential memory leak in alloc_carmine_fb()
       fbdev: i740fb: fix potential memory leak in i740fb_probe()
       fbdev: nvidia: fix potential memory leak in nvidiafb_probe()
       fbdev: s3fb: fix potential memory leak in s3_pci_probe()
       fbdev: tdfxfb: fix potential memory leak in tdfxfb_probe()
       fbdev: tridentfb: fix potential memory leak in trident_pci_probe()
       fbdev: uvesafb: fix potential memory leak in uvesafb_probe()
       fbdev: efifb: fix memory leak in efifb_probe()
       fbdev: vesafb: fix memory leak in vesafb_probe()
       fbdev: sm501fb: fix potential memory leak in sm501fb_probe()

  drivers/video/fbdev/aty/radeon_base.c | 1 +
  drivers/video/fbdev/broadsheetfb.c    | 8 ++++++--
  drivers/video/fbdev/carminefb.c       | 1 +
  drivers/video/fbdev/efifb.c           | 1 +
  drivers/video/fbdev/hecubafb.c        | 6 +++++-
  drivers/video/fbdev/i740fb.c          | 1 +
  drivers/video/fbdev/metronomefb.c     | 8 ++++++--
  drivers/video/fbdev/nvidia/nvidia.c   | 1 +
  drivers/video/fbdev/s3fb.c            | 1 +
  drivers/video/fbdev/sm501fb.c         | 3 +++
  drivers/video/fbdev/tdfxfb.c          | 1 +
  drivers/video/fbdev/tridentfb.c       | 1 +
  drivers/video/fbdev/uvesafb.c         | 4 ++--
  drivers/video/fbdev/vesafb.c          | 1 +
  14 files changed, 31 insertions(+), 7 deletions(-)
I applied the whole series to the fbdev git tree.
Thanks a lot !

Helge

Reply via email to