[s3] vfs_fruit: CID 1416478, 1416477, 1416476, 1416475

Christof Schmitt cs at samba.org
Tue Jun 12 17:55:18 UTC 2018


On Fri, May 25, 2018 at 12:51:44PM +0200, Swen Schillig via samba-technical wrote:

Please use DBG_ERR instead of D_ERR, otherwise this looks good to me.

Christof

> Please review and push if happy.
> 
> Thanks for your support in advance.
> 
> Cheers Swen.

> From 72b4bab868ff6ee328dfbe847aa30634ec091be0 Mon Sep 17 00:00:00 2001
> From: Swen Schillig <swen at vnet.ibm.com>
> Date: Fri, 25 May 2018 11:32:38 +0200
> Subject: [PATCH 1/4] [s3] CID 1416478: de-ref NULL value in fruit_pwrite_rsrc
> 
> Signed-off-by: Swen Schillig <swen at vnet.ibm.com>
> ---
>  source3/modules/vfs_fruit.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c
> index 0a8141a9e51..33d68b9dffb 100644
> --- a/source3/modules/vfs_fruit.c
> +++ b/source3/modules/vfs_fruit.c
> @@ -4405,6 +4405,11 @@ static ssize_t fruit_pwrite_rsrc(vfs_handle_struct *handle,
>  	struct fio *fio = (struct fio *)VFS_FETCH_FSP_EXTENSION(handle, fsp);
>  	ssize_t nwritten;
>  
> +	if (fio == NULL) {
> +		D_ERR("Failed to fetch fsp extension");
> +		return -1;
> +	}
> +
>  	switch (fio->config->rsrc) {
>  	case FRUIT_RSRC_STREAM:
>  		nwritten = fruit_pwrite_rsrc_stream(handle, fsp, data, n, offset);
> -- 
> 2.14.3
> 
> 
> From a1e9a0d01e83311e29b3d60042b42c428b19f44e Mon Sep 17 00:00:00 2001
> From: Swen Schillig <swen at vnet.ibm.com>
> Date: Fri, 25 May 2018 11:39:50 +0200
> Subject: [PATCH 2/4] [s3] CID 1416477: possibly dereferencing NULL in
>  fruit_pwrite_meta
> 
> Signed-off-by: Swen Schillig <swen at vnet.ibm.com>
> ---
>  source3/modules/vfs_fruit.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c
> index 33d68b9dffb..e48d54a2252 100644
> --- a/source3/modules/vfs_fruit.c
> +++ b/source3/modules/vfs_fruit.c
> @@ -4328,6 +4328,11 @@ static ssize_t fruit_pwrite_meta(vfs_handle_struct *handle,
>  		return -1;
>  	}
>  
> +	if (fio == NULL) {
> +		D_ERR("Failed to fetch fsp extension");
> +		return -1;
> +	}
> +
>  	switch (fio->config->meta) {
>  	case FRUIT_META_STREAM:
>  		nwritten = fruit_pwrite_meta_stream(handle, fsp, data,
> -- 
> 2.14.3
> 
> 
> From 8c93af74863b51aedab767c2d0d8717a7cede94b Mon Sep 17 00:00:00 2001
> From: Swen Schillig <swen at vnet.ibm.com>
> Date: Fri, 25 May 2018 12:43:42 +0200
> Subject: [PATCH 3/4] [s3] CID 1416476: possibly dereferencing NULL in
>  fruit_ftruncate_rsrc
> 
> Signed-off-by: Swen Schillig <swen at vnet.ibm.com>
> ---
>  source3/modules/vfs_fruit.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c
> index e48d54a2252..de1b7940ec4 100644
> --- a/source3/modules/vfs_fruit.c
> +++ b/source3/modules/vfs_fruit.c
> @@ -5501,6 +5501,11 @@ static int fruit_ftruncate_rsrc(struct vfs_handle_struct *handle,
>  	struct fio *fio = (struct fio *)VFS_FETCH_FSP_EXTENSION(handle, fsp);
>  	int ret;
>  
> +	if (fio == NULL) {
> +		D_ERR("Failed to fetch fsp extension");
> +		return -1;
> +	}
> +
>  	switch (fio->config->rsrc) {
>  	case FRUIT_RSRC_XATTR:
>  		ret = fruit_ftruncate_rsrc_xattr(handle, fsp, offset);
> -- 
> 2.14.3
> 
> 
> From 398059ca6cb6adfc6f6ae66db537d6ee0d9ff4d7 Mon Sep 17 00:00:00 2001
> From: Swen Schillig <swen at vnet.ibm.com>
> Date: Fri, 25 May 2018 12:45:35 +0200
> Subject: [PATCH 4/4] [s3] CID 1416475: possibly dereferencing NULL in
>  fruit_pread_meta
> 
> Signed-off-by: Swen Schillig <swen at vnet.ibm.com>
> ---
>  source3/modules/vfs_fruit.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/source3/modules/vfs_fruit.c b/source3/modules/vfs_fruit.c
> index de1b7940ec4..a6709ca78d2 100644
> --- a/source3/modules/vfs_fruit.c
> +++ b/source3/modules/vfs_fruit.c
> @@ -4002,6 +4002,11 @@ static ssize_t fruit_pread_meta(vfs_handle_struct *handle,
>  		return 0;
>  	}
>  
> +	if (fio == NULL) {
> +		D_ERR("Failed to fetch fsp extension");
> +		return -1;
> +	}
> +
>  	/* Yes, macOS always reads from offset 0 */
>  	offset = 0;
>  	to_return = MIN(n, AFP_INFO_SIZE);
> -- 
> 2.14.3
> 




More information about the samba-technical mailing list