From: Jeremy Allison Date: Tue, 22 Dec 2009 05:16:15 +0000 (-0800) Subject: Fix bug 7005 - mangle method = hash truncates files with dot '. ' character X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e3be5ddae764fae7ff4a3ef502e8461d0535bdc5;p=thirdparty%2Fsamba.git Fix bug 7005 - mangle method = hash truncates files with dot '. ' character Don't change the contents of a const string via a pointer alias (or if you do, change it back.....). Jeremy. --- diff --git a/source/smbd/mangle_hash.c b/source/smbd/mangle_hash.c index 5de69e21ab4..7073c3c64eb 100644 --- a/source/smbd/mangle_hash.c +++ b/source/smbd/mangle_hash.c @@ -432,6 +432,13 @@ static void cache_mangled_name( const char mangled_name[13], if( !s1[i] && !s2[i] ) { /* Truncate at the '.' */ *s1 = '\0'; + /* + * DANGER WILL ROBINSON - this + * is changing a const string via + * an aliased pointer ! Remember to + * put it back once we've used it. + * JRA + */ *s2 = '\0'; } } @@ -443,6 +450,8 @@ static void cache_mangled_name( const char mangled_name[13], } else { DEBUG(5,("cache_mangled_name: Stored entry %s -> %s\n", mangled_name_key, raw_name)); } + /* Restore the change we made to the const string. */ + *s2 = '.'; } /* ************************************************************************** **