jra at samba.org
Tue Nov 22 02:10:01 GMT 2005
On Mon, Nov 21, 2005 at 07:01:18PM +0100, Thomas Neumann wrote:
> we discovered a bug in samba-3.0.20b (in fact 3.0.*) in combination with
> the following settings (considered default-configuration):
> case sensitive = no
> preserve case = yes
> short preserve case = no
> default case = lower
> Lower case is not used for files in subdirectories due to an erratic
> 8.3-file checking in source/smbd/filename.c where the whole given path
> is used to detect short filenames.
> The diff containing the fixes for this source-file are attached to this
Thanks Thomas, this is a valid bug but not I think a correct patch.
The problem is that the variable &start output from stat_cache_lookup() may be
pointing at any valid component along the path - it may not be just pointing
at the last component (as you're assuming here).
The correct fix for this is to move the string normalization into the
part of this function containing the comment :
* Just the last part of the name doesn't exist.
* We may need to strupper() or strlower() it in case
* this conversion is being used for file creation
* purposes. If the filename is of mixed case then
* don't normalise it.
The bug is that the "short preserve case" is not being looked
at here for 8.3 filename. Remember that the "preserve case",
"short preserve case" and "default case" parameters are only
supposed to apply for new files.
I'll send you my patch for this for you to test if that's ok.
More information about the samba-technical