[PATCH] fix sysquotas finding of mount point

Jeremy Allison jra at samba.org
Fri Oct 7 17:48:37 UTC 2016


On Fri, Oct 07, 2016 at 11:12:54AM +0300, Uri Simchoni wrote:
> Hi,
> 
> The attached fixes a bug in sysquotas code that wrongly handles the path
> if the mount point is under root (such as /home...)
> 
> The bug is a regression due to my fix to sysquotas, that avoid stating
> all mounts just to find our mount point.
> 
> Confirmed to fix an issue for a user.
> 
> Review appreciated.

LGTM. Pushed !

> From 1212066a55609d50a657ca2a2660c44315b55c51 Mon Sep 17 00:00:00 2001
> From: Uri Simchoni <uri at samba.org>
> Date: Fri, 7 Oct 2016 11:05:07 +0300
> Subject: [PATCH] s3-sysquotas: correctly restore path when finding mount point
> 
> When traversing the path backwards to find the mount point, if the
> root '/' is reached, then the character to be restored is not a '/'.
> 
> BUG: https://bugzilla.samba.org/show_bug.cgi?id=12273
> 
> Signed-off-by: Uri Simchoni <uri at samba.org>
> ---
>  source3/lib/sysquotas.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/source3/lib/sysquotas.c b/source3/lib/sysquotas.c
> index c2d09da..eef87be 100644
> --- a/source3/lib/sysquotas.c
> +++ b/source3/lib/sysquotas.c
> @@ -82,6 +82,8 @@ static int sys_path_to_bdev(const char *path, char **mntpath, char **bdev, char
>  	}
>  
>  	while (true) {
> +		char save_ch;
> +
>  		p = strrchr(stat_mntpath, '/');
>  		if (p == NULL) {
>  			DBG_ERR("realpath for %s does not begin with a '/'\n",
> @@ -93,6 +95,7 @@ static int sys_path_to_bdev(const char *path, char **mntpath, char **bdev, char
>  			++p;
>  		}
>  
> +		save_ch = *p;
>  		*p = 0;
>  		if (sys_stat(stat_mntpath, &S, false) != 0) {
>  			DBG_WARNING("cannot stat real path component %s - %s\n",
> @@ -100,7 +103,7 @@ static int sys_path_to_bdev(const char *path, char **mntpath, char **bdev, char
>  			goto out;
>  		}
>  		if (S.st_ex_dev != devno) {
> -			*p = '/';
> +			*p = save_ch;
>  			break;
>  		}
>  
> -- 
> 2.5.5
> 




More information about the samba-technical mailing list