Inconsistency in calls to SMB_VFS_STAT ...
Richard Sharpe
realrichardsharpe at gmail.com
Tue Apr 14 11:25:30 MDT 2015
On Tue, Apr 14, 2015 at 10:17 AM, Jeremy Allison <jra at samba.org> wrote:
> On Tue, Apr 14, 2015 at 10:14:59AM -0700, Richard Sharpe wrote:
>>
>> OK, the offending code appears to be in source3/smbd/service.c around
>> line 824, as shown below. Notice the comment about Win2000.
>>
>> smb_fname_cpath = synthetic_smb_fname(talloc_tos(), conn->connectpath,
>> NULL, NULL);
>> if (smb_fname_cpath == NULL) {
>> status = NT_STATUS_NO_MEMORY;
>> goto err_root_exit;
>> }
>>
>> /* win2000 does not check the permissions on the directory
>> during the tree connect, instead relying on permission
>> check during individual operations. To match this behaviour
>> I have disabled this chdir check (tridge) */
>> /* the alternative is just to check the directory exists */
>>
>> if ((ret = SMB_VFS_STAT(conn, smb_fname_cpath)) != 0 ||
>> !S_ISDIR(smb_fname_cpath->st.st_ex_mode)) {
>> if (ret == 0 && !S_ISDIR(smb_fname_cpath->st.st_ex_mode)) {
>> DEBUG(0,("'%s' is not a directory, when connecting to "
>> "[%s]\n", conn->connectpath,
>> lp_servicename(talloc_tos(), snum)));
>> } else {
>> DEBUG(0,("'%s' does not exist or permission denied "
>> "when connecting to [%s] Error was %s\n",
>> conn->connectpath,
>> lp_servicename(talloc_tos(), snum),
>> strerror(errno) ));
>> }
>> status = NT_STATUS_BAD_NETWORK_NAME;
>> goto err_root_exit;
>> }
>> conn->base_share_dev = smb_fname_cpath->st.st_ex_dev;
>>
>> Should I file a bug?
>
> Yes please. This is clearly wrong, and we should depend on
> torture tests around these things these days.
https://bugzilla.samba.org/show_bug.cgi?id=11216
--
Regards,
Richard Sharpe
(何以解憂?唯有杜康。--曹操)
More information about the samba-technical
mailing list