When dev_get_priv errors out, the ubifs is not unbounted (if used)

Correctly handle this handle condition and while at it also return -EINVAL
instead of -ENOMEM as a better error since no memory is allocated but is
actually an invalid scenario for fw_get_filesystem_firmware().

Signed-off-by: Christian Marangi <[email protected]>
---
 drivers/misc/fs_loader.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/misc/fs_loader.c b/drivers/misc/fs_loader.c
index 2928cf75f89e..7e432a7ebd62 100644
--- a/drivers/misc/fs_loader.c
+++ b/drivers/misc/fs_loader.c
@@ -178,8 +178,10 @@ static int fw_get_filesystem_firmware(struct udevice *dev)
 
        struct firmware *firmwarep = dev_get_priv(dev);
 
-       if (!firmwarep)
-               return -ENOMEM;
+       if (!firmwarep) {
+               ret = -EINVAL;
+               goto out;
+       }
 
        ret = fs_read(firmwarep->name, (ulong)map_to_sysmem(firmwarep->data),
                        firmwarep->offset, firmwarep->size, &actread);
-- 
2.51.0

Reply via email to