Forgot to Cc the maintainer, doing it now, sorry for the spam.

On ter, 2021-02-23 às 00:49 -0300, Wagner Popov dos Santos wrote:
> The function jffs2_1pass_read_inode() was discarding the summary
> inodes and dirent because the value in datacrc flag wasn't
> initialized in function jffs2_sum_process_sum_data().
> 
> This fix initializes the status of all summary records to indicate
> that the CRC needs to be verified when they are loaded.
> 
> Before this fix, the behaviors produced by the undefined value of
> datacrc was:
> - Summary's registries were discarded when 'b->datacrc' is equal
>   as 'CRC_BAD'.
> - Summary's registries were not checked when b->datacrc differs of
>   'CRC_BAD' and 'CRC_UNKNOWN'
> 
> So, almost all of the time the crc just isn't checked, and in some
> cases the registries are discarded.
> 
> Signed-off-by: Wagner Popov dos Santos <wpo...@gmail.com>
> ---
>  fs/jffs2/jffs2_1pass.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/fs/jffs2/jffs2_1pass.c b/fs/jffs2/jffs2_1pass.c
> index a98745c50e..c9eda54cdb 100644
> --- a/fs/jffs2/jffs2_1pass.c
> +++ b/fs/jffs2/jffs2_1pass.c
> @@ -1276,6 +1276,7 @@ static int jffs2_sum_process_sum_data(struct part_info 
> *part, uint32_t offset,
>                                                       &spi->version);
>                                               b->ino = sum_get_unaligned32(
>                                                       &spi->inode);
> +                                             b->datacrc = CRC_UNKNOWN;
>                                       }
>  
>                                       sp += JFFS2_SUMMARY_INODE_SIZE;
> @@ -1297,6 +1298,7 @@ static int jffs2_sum_process_sum_data(struct part_info 
> *part, uint32_t offset,
>                                                       &spd->version);
>                                               b->pino = sum_get_unaligned32(
>                                                       &spd->pino);
> +                                             b->datacrc = CRC_UNKNOWN;
>                                       }
>  
>                                       sp += JFFS2_SUMMARY_DIRENT_SIZE(

Reply via email to