Re: [PATCH 1/2] hfsplus: prevent crash on exit from failed search

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2018-06-29 at 15:34 -0300, Ernesto A. Fernández wrote:
> The hfs_find_exit() function expects fd->bnode to be NULL after a
> search has failed. The hfs_brec_insert() function may instead set
> it to an error-valued pointer. Fix this to prevent a crash.
> 
> Reported-by: Anatoly Trosinenko <anatoly.trosinenko@xxxxxxxxx>
> Signed-off-by: Ernesto A. Fernández <ernesto.mnd.fernandez@xxxxxxxxx>
> ---
>  fs/hfsplus/brec.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/fs/hfsplus/brec.c b/fs/hfsplus/brec.c
> index 808f4d8c859c..ed8eacb34452 100644
> --- a/fs/hfsplus/brec.c
> +++ b/fs/hfsplus/brec.c
> @@ -73,9 +73,10 @@ int hfs_brec_insert(struct hfs_find_data *fd, void *entry, int entry_len)
>  	if (!fd->bnode) {
>  		if (!tree->root)
>  			hfs_btree_inc_height(tree);
> -		fd->bnode = hfs_bnode_find(tree, tree->leaf_head);
> -		if (IS_ERR(fd->bnode))
> -			return PTR_ERR(fd->bnode);


Are you sure that no caller is used this error code? Did you check this?

Maybe, it makes sense to extract the error code and to show the error
message on the caller side instead of processing the simple NULL?

Thanks,
Vyacheslav Dubeyko.


> +		node = hfs_bnode_find(tree, tree->leaf_head);
> +		if (IS_ERR(node))
> +			return PTR_ERR(node);
> +		fd->bnode = node;
>  		fd->record = -1;
>  	}
>  	new_node = NULL;





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux