drm/edid: Fix a missing-check bug in drm_load_edid_firmware()
authorGen Zhang <blackgod016574@gmail.com>
Fri, 24 May 2019 02:32:22 +0000 (10:32 +0800)
committerJani Nikula <jani.nikula@intel.com>
Fri, 24 May 2019 18:01:33 +0000 (21:01 +0300)
commit9f1f1a2dab38d4ce87a13565cf4dc1b73bef3a5f
treed33e926240b2a662613446b16bed56ad10d5f68e
parent5fc537bfd00033a3f813330175f7f12c25957ebf
drm/edid: Fix a missing-check bug in drm_load_edid_firmware()

In drm_load_edid_firmware(), fwstr is allocated by kstrdup(). And fwstr
is dereferenced in the following codes. However, memory allocation
functions such as kstrdup() may fail and returns NULL. Dereferencing
this null pointer may cause the kernel go wrong. Thus we should check
this kstrdup() operation.
Further, if kstrdup() returns NULL, we should return ERR_PTR(-ENOMEM) to
the caller site.

Signed-off-by: Gen Zhang <blackgod016574@gmail.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190524023222.GA5302@zhanggen-UX430UQ
drivers/gpu/drm/drm_edid_load.c