Ignore:
Timestamp:
May 24, 2009, 7:17:10 AM (16 years ago)
Author:
Herwig Bauernfeind
Message:

Update Samba 3.3 to 3.3.1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/samba-3.3.x/source/smbd/reply.c

    r206 r221  
    56155615                }
    56165616        } else {
    5617                 if (SMB_VFS_STAT(conn,fsp->fsp_name,&sbuf) == -1) {
     5617                int ret = -1;
     5618                if (fsp->posix_open) {
     5619                        ret = SMB_VFS_LSTAT(conn,fsp->fsp_name,&sbuf);
     5620                } else {
     5621                        ret = SMB_VFS_STAT(conn,fsp->fsp_name,&sbuf);
     5622                }
     5623                if (ret == -1) {
    56185624                        return map_nt_error_from_unix(errno);
    56195625                }
     
    57195725        const char *dname;
    57205726        long offset = 0;
     5727        bool posix_pathnames = lp_posix_pathnames();
    57215728
    57225729        ZERO_STRUCT(sbuf1);
     
    58305837
    58315838                ZERO_STRUCT(sbuf1);
    5832                 SMB_VFS_STAT(conn, directory, &sbuf1);
     5839                if (posix_pathnames) {
     5840                        SMB_VFS_LSTAT(conn, directory, &sbuf1);
     5841                } else {
     5842                        SMB_VFS_STAT(conn, directory, &sbuf1);
     5843                }
    58335844
    58345845                status = S_ISDIR(sbuf1.st_mode) ?
    58355846                        open_directory(conn, req, directory, &sbuf1,
    5836                                        access_mask,
    5837                                        FILE_SHARE_READ|FILE_SHARE_WRITE,
    5838                                        FILE_OPEN, 0, 0, NULL,
    5839                                        &fsp)
     5847                                        access_mask,
     5848                                        FILE_SHARE_READ|FILE_SHARE_WRITE,
     5849                                        FILE_OPEN,
     5850                                        0,
     5851                                        posix_pathnames ? FILE_FLAG_POSIX_SEMANTICS|0777 : 0,
     5852                                        NULL,
     5853                                        &fsp)
    58405854                        : open_file_ntcreate(conn, req, directory, &sbuf1,
    5841                                              access_mask,
    5842                                              FILE_SHARE_READ|FILE_SHARE_WRITE,
    5843                                              FILE_OPEN, 0, 0, 0, NULL,
    5844                                              &fsp);
     5855                                        access_mask,
     5856                                        FILE_SHARE_READ|FILE_SHARE_WRITE,
     5857                                        FILE_OPEN,
     5858                                        0,
     5859                                        posix_pathnames ? FILE_FLAG_POSIX_SEMANTICS|0777 : 0,
     5860                                        0,
     5861                                        NULL,
     5862                                        &fsp);
    58455863
    58465864                if (!NT_STATUS_IS_OK(status)) {
     
    59345952
    59355953                ZERO_STRUCT(sbuf1);
    5936                 SMB_VFS_STAT(conn, fname, &sbuf1);
     5954                if (posix_pathnames) {
     5955                        SMB_VFS_LSTAT(conn, fname, &sbuf1);
     5956                } else {
     5957                        SMB_VFS_STAT(conn, fname, &sbuf1);
     5958                }
    59375959
    59385960                status = S_ISDIR(sbuf1.st_mode) ?
    59395961                        open_directory(conn, req, fname, &sbuf1,
    5940                                        access_mask,
    5941                                        FILE_SHARE_READ|FILE_SHARE_WRITE,
    5942                                        FILE_OPEN, 0, 0, NULL,
    5943                                        &fsp)
     5962                                        access_mask,
     5963                                        FILE_SHARE_READ|FILE_SHARE_WRITE,
     5964                                        FILE_OPEN,
     5965                                        0,
     5966                                        posix_pathnames ? FILE_FLAG_POSIX_SEMANTICS|0777 : 0,
     5967                                        NULL,
     5968                                        &fsp)
    59445969                        : open_file_ntcreate(conn, req, fname, &sbuf1,
    5945                                              access_mask,
    5946                                              FILE_SHARE_READ|FILE_SHARE_WRITE,
    5947                                              FILE_OPEN, 0, 0, 0, NULL,
    5948                                              &fsp);
     5970                                        access_mask,
     5971                                        FILE_SHARE_READ|FILE_SHARE_WRITE,
     5972                                        FILE_OPEN,
     5973                                        0,
     5974                                        posix_pathnames ? FILE_FLAG_POSIX_SEMANTICS|0777 : 0,
     5975                                        0,
     5976                                        NULL,
     5977                                        &fsp);
    59495978
    59505979                if (!NT_STATUS_IS_OK(status)) {
     
    71247153                }
    71257154        } else {
    7126                 if (SMB_VFS_STAT(conn, fsp->fsp_name, &sbuf) == -1) {
     7155                int ret = -1;
     7156
     7157                if (fsp->posix_open) {
     7158                        ret = SMB_VFS_LSTAT(conn, fsp->fsp_name, &sbuf);
     7159                } else {
     7160                        ret = SMB_VFS_STAT(conn, fsp->fsp_name, &sbuf);
     7161                }
     7162                if (ret == -1) {
    71277163                        status = map_nt_error_from_unix(errno);
    71287164                        reply_nterror(req, status);
Note: See TracChangeset for help on using the changeset viewer.