Ignore:
Timestamp:
Nov 25, 2016, 8:04:54 PM (9 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: update vendor to version 4.4.7

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source3/smbd/open.c

    r988 r989  
    884884                }
    885885
     886                if (local_flags & O_NONBLOCK) {
     887                        /*
     888                         * GPFS can return ETIMEDOUT for pread on
     889                         * nonblocking file descriptors when files
     890                         * migrated to tape need to be recalled. I
     891                         * could imagine this happens elsehwere
     892                         * too. With blocking file descriptors this
     893                         * does not happen.
     894                         */
     895                        ret = set_blocking(fsp->fh->fd, true);
     896                        if (ret == -1) {
     897                                status = map_nt_error_from_unix(errno);
     898                                DBG_WARNING("Could not set fd to blocking: "
     899                                            "%s\n", strerror(errno));
     900                                fd_close(fsp);
     901                                return status;
     902                        }
     903                }
     904
    886905                ret = SMB_VFS_FSTAT(fsp, &smb_fname->st);
    887906                if (ret == -1) {
     
    25182537                new_dos_attributes &= SAMBA_ATTRIBUTES_MASK;
    25192538                if (file_existed) {
    2520                         existing_dos_attributes = dos_mode(conn, smb_fname);
     2539                        /*
     2540                         * Only use strored DOS attributes for checks
     2541                         * against requested attributes (below via
     2542                         * open_match_attributes()), cf bug #11992
     2543                         * for details. -slow
     2544                         */
     2545                        bool ok;
     2546                        uint32_t attr = 0;
     2547
     2548                        ok = get_ea_dos_attribute(conn, smb_fname, &attr);
     2549                        if (ok) {
     2550                                existing_dos_attributes = attr;
     2551                        }
    25212552                }
    25222553        }
     
    30853116                        return NT_STATUS_SHARING_VIOLATION;
    30863117                }
     3118
     3119                fsp->kernel_share_modes_taken = true;
    30873120        }
    30883121
     
    38583891        TALLOC_CTX *frame = talloc_stackframe();
    38593892        NTSTATUS status;
     3893        bool saved_posix_pathnames;
    38603894
    38613895        status = vfs_streaminfo(conn, NULL, fname, talloc_tos(),
     
    38893923                goto fail;
    38903924        }
     3925
     3926        /*
     3927         * Any stream names *must* be treated as Windows
     3928         * pathnames, even if we're using UNIX extensions.
     3929         */
     3930
     3931        saved_posix_pathnames = lp_set_posix_pathnames(false);
    38913932
    38923933        for (i=0; i<num_streams; i++) {
     
    39573998
    39583999 fail:
     4000
     4001        (void)lp_set_posix_pathnames(saved_posix_pathnames);
    39594002        TALLOC_FREE(frame);
    39604003        return status;
Note: See TracChangeset for help on using the changeset viewer.