RFC: fix a check in stat_cache_add()

Jeremy Allison jra at samba.org
Fri Jul 6 22:59:32 UTC 2018


On Wed, Jun 27, 2018 at 01:13:00PM +0200, Ralph Böhme wrote:
> Hi!
> 
> I just stumbled upon a check in stat_cache_add() that seems to be wrong, cf the
> commit message in the attached patch. What do you think?

Good catch - how did you find it ?

RB+ and pushed.

Jeremy

> -- 
> Ralph Boehme, Samba Team       https://samba.org/
> Samba Developer, SerNet GmbH   https://sernet.de/en/samba/
> GPG Key Fingerprint:           FAE2 C608 8A24 2520 51C5
>                                59E4 AA1E 9B71 2639 9E46

> From 8f9aa76cdaf04de73b25485488d96cdf4122f7e7 Mon Sep 17 00:00:00 2001
> From: Ralph Boehme <slow at samba.org>
> Date: Wed, 27 Jun 2018 13:07:00 +0200
> Subject: [PATCH] s3: smbd: fix a check in stat_cache_add()
> 
> As the comment above the if condition says:
> 
>         /*
>          * If we are in case insentive mode, we don't need to
>          * store names that need no translation - else, it
>          * would be a waste.
>          */
> 
> Ie if stat_cache_add() is called as
> 
>         stat_cache_add("foo/bar", "foo/bar", false)
> 
> There's no need to cache the path, as a simple stat() on the client
> supplied name (full_orig_name) matches the name used in the
> filesystem (passed to stat_cache_add() as translated_path).
> 
> So fix the if condition to match the comment.
> ---
>  source3/smbd/statcache.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/source3/smbd/statcache.c b/source3/smbd/statcache.c
> index d49f5eebdf0..27f9dec48f7 100644
> --- a/source3/smbd/statcache.c
> +++ b/source3/smbd/statcache.c
> @@ -73,7 +73,7 @@ void stat_cache_add( const char *full_orig_name,
>  	 * would be a waste.
>  	 */
>  
> -	if (case_sensitive && (strcmp(full_orig_name, translated_path) == 0)) {
> +	if (!case_sensitive && (strcmp(full_orig_name, translated_path) == 0)) {
>  		return;
>  	}
>  
> -- 
> 2.13.6
> 




More information about the samba-technical mailing list