diff mbox series

[1/1] spl: fix ext4fs_mount return code handling

Message ID 20200616115902.3966-1-heiko.thiery@gmail.com
State New
Headers show
Series [1/1] spl: fix ext4fs_mount return code handling | expand

Commit Message

Heiko Thiery June 16, 2020, 11:59 a.m. UTC
From: Thomas Schaefer <thomas.schaefer at kontron.com>

- Despite other ext4 filesystem functions, ext4fs_mount returns
  0 in case of error.
- This leads to u-boot crash in case that an SD card
  with valid partition table but without ext4 filesystem created
  in a partition is found on SD card.
- Fix this by returning a proper error code of '-1' from spl_load_image_ext
  function in case of ext4fs_mount error.

Signed-off-by: Thomas Schaefer <thomas.schaefer at kontron.com>
[hthiery: slightly reword the commit message]
Signed-off-by: Heiko Thiery <heiko.thiery at gmail.com>
---
 common/spl/spl_ext.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Tom Rini June 16, 2020, 3:29 p.m. UTC | #1
On Tue, Jun 16, 2020 at 01:59:03PM +0200, Heiko Thiery wrote:

> From: Thomas Schaefer <thomas.schaefer at kontron.com>
> 
> - Despite other ext4 filesystem functions, ext4fs_mount returns
>   0 in case of error.
> - This leads to u-boot crash in case that an SD card
>   with valid partition table but without ext4 filesystem created
>   in a partition is found on SD card.
> - Fix this by returning a proper error code of '-1' from spl_load_image_ext
>   function in case of ext4fs_mount error.
> 
> Signed-off-by: Thomas Schaefer <thomas.schaefer at kontron.com>
> [hthiery: slightly reword the commit message]
> Signed-off-by: Heiko Thiery <heiko.thiery at gmail.com>
> ---
>  common/spl/spl_ext.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/common/spl/spl_ext.c b/common/spl/spl_ext.c
> index 3898041d10..c8d137ed98 100644
> --- a/common/spl/spl_ext.c
> +++ b/common/spl/spl_ext.c
> @@ -32,6 +32,7 @@ int spl_load_image_ext(struct spl_image_info *spl_image,
>  #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
>  		printf("%s: ext4fs mount err - %d\n", __func__, err);
>  #endif
> +		err = -1; /* ext4fs_mount returns 0 in case of error! */
>  		goto end;
>  	}

Looking over the code, we should return -1 directly here, goto end isn't
going to provide more useful information as we don't have a "real" error
code to tell the user.  With that change please add:

Reviewed-by: Tom Rini <trini at konsulko.com>

and post v2, thanks!
diff mbox series

Patch

diff --git a/common/spl/spl_ext.c b/common/spl/spl_ext.c
index 3898041d10..c8d137ed98 100644
--- a/common/spl/spl_ext.c
+++ b/common/spl/spl_ext.c
@@ -32,6 +32,7 @@  int spl_load_image_ext(struct spl_image_info *spl_image,
 #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
 		printf("%s: ext4fs mount err - %d\n", __func__, err);
 #endif
+		err = -1; /* ext4fs_mount returns 0 in case of error! */
 		goto end;
 	}