OSDN Git Service

fbdev: Transfer video= option strings to caller; clarify ownership
authorThomas Zimmermann <tzimmermann@suse.de>
Thu, 9 Feb 2023 13:55:00 +0000 (14:55 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Mon, 20 Feb 2023 13:56:42 +0000 (14:56 +0100)
commit73ce73c30ba9ae4d90fdfad7ebe9104001d5d851
treeb18404055c4f885f3922d40fb9201aaf3cd22453
parentc88b946af120029944f4f78fe156bd9361698e97
fbdev: Transfer video= option strings to caller; clarify ownership

In fb_get_options(), always duplicate the returned option string and
transfer ownership of the memory to the function's caller.

Until now, only the global option string got duplicated and transferred
to the caller; the per-driver options were owned by fb_get_options().
In the end, it was impossible for the function's caller to detect if
it had to release the string's memory buffer. Hence, all calling drivers
leak the memory buffer. The leaks have existed ever since, but drivers
only call fb_get_option() once as part of module initialization. So the
amount of leaked memory is not significant.

Fix the semantics of fb_get_option() by unconditionally transferring
ownership of the memory buffer to the caller. Later patches can resolve
the memory leaks in the fbdev drivers.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230209135509.7786-3-tzimmermann@suse.de
drivers/video/fbdev/core/fb_cmdline.c