diff mbox

ubifs: ensure zero err is returned on successful return

Message ID 20161216133239.21547-1-colin.king@canonical.com
State Accepted
Headers show

Commit Message

Colin Ian King Dec. 16, 2016, 1:32 p.m. UTC
From: Colin Ian King <colin.king@canonical.com>

err is no longer being set on a successful return path, causing
a garbage value being returned. Fix this by setting err to zero
for the successful return path.

Found with static analysis by CoverityScan, CID 1389473

Fixes: 7799953b34d18 ("ubifs: Implement encrypt/decrypt for all IO")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 fs/ubifs/journal.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Richard Weinberger Dec. 16, 2016, 1:38 p.m. UTC | #1
On 16.12.2016 14:32, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
> 
> err is no longer being set on a successful return path, causing
> a garbage value being returned. Fix this by setting err to zero
> for the successful return path.
> 
> Found with static analysis by CoverityScan, CID 1389473
> 
> Fixes: 7799953b34d18 ("ubifs: Implement encrypt/decrypt for all IO")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  fs/ubifs/journal.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/ubifs/journal.c b/fs/ubifs/journal.c
> index a459211..b75f1a6 100644
> --- a/fs/ubifs/journal.c
> +++ b/fs/ubifs/journal.c
> @@ -1319,6 +1319,7 @@ static int truncate_data_node(const struct ubifs_info *c, const struct inode *in
>  	dn->compr_type = cpu_to_le16(compr_type);
>  	dn->size = cpu_to_le32(*new_len);
>  	*new_len = UBIFS_DATA_NODE_SZ + out_len;
> +	err = 0;
>  out:
>  	kfree(buf);
>  	return err;
> 

Good catch!

Thanks,
//richard
diff mbox

Patch

diff --git a/fs/ubifs/journal.c b/fs/ubifs/journal.c
index a459211..b75f1a6 100644
--- a/fs/ubifs/journal.c
+++ b/fs/ubifs/journal.c
@@ -1319,6 +1319,7 @@  static int truncate_data_node(const struct ubifs_info *c, const struct inode *in
 	dn->compr_type = cpu_to_le16(compr_type);
 	dn->size = cpu_to_le32(*new_len);
 	*new_len = UBIFS_DATA_NODE_SZ + out_len;
+	err = 0;
 out:
 	kfree(buf);
 	return err;