Ignore:
Timestamp:
Nov 24, 2016, 1:14:11 PM (9 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: update vendor to version 4.4.3

Location:
vendor/current/source4/ntvfs/ipc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source4/ntvfs/ipc/ipc_rap.c

    r740 r988  
    256256        struct rap_NetShareEnum r;
    257257        NTSTATUS result;
     258        uint32_t offset_save = 0;
     259        struct rap_heap_save heap_save = {0};
    258260
    259261        RAP_GOTO(rap_srv_pull_word(call, &r.in.level));
     
    283285
    284286                int i = r.out.count;
    285                 uint32_t offset_save;
    286                 struct rap_heap_save heap_save;
    287287
    288288                offset_save = call->ndr_push_data->offset;
     
    336336        struct rap_NetServerEnum2 r;
    337337        NTSTATUS result;
     338        uint32_t offset_save = 0;
     339        struct rap_heap_save heap_save = {0};
    338340
    339341        RAP_GOTO(rap_srv_pull_word(call, &r.in.level));
     
    365367
    366368                int i = r.out.count;
    367                 uint32_t offset_save;
    368                 struct rap_heap_save heap_save;
    369369
    370370                offset_save = call->ndr_push_data->offset;
  • vendor/current/source4/ntvfs/ipc/rap_server.c

    r740 r988  
    7373                r->out.info[i].info1.reserved1 = 0;
    7474                r->out.info[i].info1.share_type = dcesrv_common_get_share_type(mem_ctx, NULL, scfg);
    75                 r->out.info[i].info1.comment = talloc_strdup(mem_ctx, share_string_option(scfg, SHARE_COMMENT, ""));
     75                r->out.info[i].info1.comment = share_string_option(mem_ctx, scfg, SHARE_COMMENT, "");
    7676                talloc_free(scfg);
    7777                j++;
  • vendor/current/source4/ntvfs/ipc/vfs_ipc.c

    r740 r988  
    3030#include "../librpc/gen_ndr/rap.h"
    3131#include "ntvfs/ipc/proto.h"
    32 #include "libcli/raw/ioctl.h"
     32#include "../libcli/smb/smb_constants.h"
    3333#include "param/param.h"
    3434#include "../lib/tsocket/tsocket.h"
     
    3939#include "auth/credentials/credentials.h"
    4040#include "auth/credentials/credentials_krb5.h"
    41 #include <gssapi/gssapi.h>
     41#include "system/kerberos.h"
     42#include "system/gssapi.h"
    4243#include "system/locale.h"
     44#include "system/filesys.h"
    4345
    4446/* this is the private structure used to keep the state of an open
     
    259261        case RAW_OPEN_NTTRANS_CREATE:
    260262                fname = oi->ntcreatex.in.fname;
     263                while (fname[0] == '\\') fname++;
    261264                break;
    262265        case RAW_OPEN_OPENX:
    263266                fname = oi->openx.in.fname;
     267                while (fname[0] == '\\') fname++;
     268                if (strncasecmp(fname, "PIPE\\", 5) != 0) {
     269                        return NT_STATUS_OBJECT_PATH_SYNTAX_BAD;
     270                }
     271                while (fname[0] == '\\') fname++;
    264272                break;
    265273        case RAW_OPEN_SMB2:
     
    282290        p = talloc(h, struct pipe_state);
    283291        NT_STATUS_HAVE_NO_MEMORY(p);
    284 
    285         while (fname[0] == '\\') fname++;
    286292
    287293        /* check for valid characters in name */
     
    354360        TALLOC_FREE(subreq);
    355361        if (ret == -1) {
    356                 status = map_nt_error_from_unix(sys_errno);
     362                status = map_nt_error_from_unix_common(sys_errno);
    357363                goto reply;
    358364        }
     
    603609        TALLOC_FREE(subreq);
    604610        if (ret == -1) {
    605                 status = map_nt_error_from_unix(sys_errno);
     611                status = map_nt_error_from_unix_common(sys_errno);
    606612                goto reply;
    607613        }
     
    688694        TALLOC_FREE(subreq);
    689695        if (ret == -1) {
    690                 status = map_nt_error_from_unix(sys_errno);
     696                status = map_nt_error_from_unix_common(sys_errno);
    691697                goto reply;
    692698        }
     
    732738        struct pipe_state *p;
    733739
    734         if (io->generic.level != RAW_CLOSE_CLOSE) {
     740        if (io->generic.level != RAW_CLOSE_GENERIC) {
    735741                return ntvfs_map_close(ntvfs, req, io);
    736742        }
    737743
    738         p = pipe_state_find(ipriv, io->close.in.file.ntvfs);
     744        ZERO_STRUCT(io->generic.out);
     745
     746        p = pipe_state_find(ipriv, io->generic.in.file.ntvfs);
    739747        if (!p) {
    740748                return NT_STATUS_INVALID_HANDLE;
     
    10101018                goto reply;
    10111019        } else if (ret == -1) {
    1012                 status = map_nt_error_from_unix(sys_errno);
     1020                status = map_nt_error_from_unix_common(sys_errno);
    10131021                goto reply;
    10141022        }
     
    10461054        TALLOC_FREE(subreq);
    10471055        if (ret == -1) {
    1048                 status = map_nt_error_from_unix(sys_errno);
     1056                status = map_nt_error_from_unix_common(sys_errno);
    10491057                goto reply;
    10501058        }
     
    11741182        io->smb2.out.unknown2   = 0;
    11751183        io->smb2.out.unknown3   = 0;
    1176         io->smb2.out.in         = io->smb2.in.out;
     1184        io->smb2.out.in         = data_blob_null;
    11771185        io->smb2.out.out = data_blob_talloc(req, NULL, io->smb2.in.max_response_size);
    11781186        NT_STATUS_HAVE_NO_MEMORY(io->smb2.out.out.data);
     
    12161224        TALLOC_FREE(subreq);
    12171225        if (ret == -1) {
    1218                 status = map_nt_error_from_unix(sys_errno);
     1226                status = map_nt_error_from_unix_common(sys_errno);
    12191227                goto reply;
    12201228        }
     
    12521260        TALLOC_FREE(subreq);
    12531261        if (ret == -1) {
    1254                 status = map_nt_error_from_unix(sys_errno);
     1262                status = map_nt_error_from_unix_common(sys_errno);
    12551263                goto reply;
    12561264        }
     
    13031311
    13041312        /* fill in all the operations */
    1305         ops.connect = ipc_connect;
    1306         ops.disconnect = ipc_disconnect;
    1307         ops.unlink = ipc_unlink;
    1308         ops.chkpath = ipc_chkpath;
    1309         ops.qpathinfo = ipc_qpathinfo;
    1310         ops.setpathinfo = ipc_setpathinfo;
    1311         ops.open = ipc_open;
    1312         ops.mkdir = ipc_mkdir;
    1313         ops.rmdir = ipc_rmdir;
    1314         ops.rename = ipc_rename;
    1315         ops.copy = ipc_copy;
    1316         ops.ioctl = ipc_ioctl;
    1317         ops.read = ipc_read;
    1318         ops.write = ipc_write;
    1319         ops.seek = ipc_seek;
    1320         ops.flush = ipc_flush; 
    1321         ops.close = ipc_close;
    1322         ops.exit = ipc_exit;
    1323         ops.lock = ipc_lock;
    1324         ops.setfileinfo = ipc_setfileinfo;
    1325         ops.qfileinfo = ipc_qfileinfo;
    1326         ops.fsinfo = ipc_fsinfo;
    1327         ops.lpq = ipc_lpq;
    1328         ops.search_first = ipc_search_first;
    1329         ops.search_next = ipc_search_next;
    1330         ops.search_close = ipc_search_close;
    1331         ops.trans = ipc_trans;
    1332         ops.logoff = ipc_logoff;
    1333         ops.async_setup = ipc_async_setup;
    1334         ops.cancel = ipc_cancel;
     1313        ops.connect_fn = ipc_connect;
     1314        ops.disconnect_fn = ipc_disconnect;
     1315        ops.unlink_fn = ipc_unlink;
     1316        ops.chkpath_fn = ipc_chkpath;
     1317        ops.qpathinfo_fn = ipc_qpathinfo;
     1318        ops.setpathinfo_fn = ipc_setpathinfo;
     1319        ops.open_fn = ipc_open;
     1320        ops.mkdir_fn = ipc_mkdir;
     1321        ops.rmdir_fn = ipc_rmdir;
     1322        ops.rename_fn = ipc_rename;
     1323        ops.copy_fn = ipc_copy;
     1324        ops.ioctl_fn = ipc_ioctl;
     1325        ops.read_fn = ipc_read;
     1326        ops.write_fn = ipc_write;
     1327        ops.seek_fn = ipc_seek;
     1328        ops.flush_fn = ipc_flush;
     1329        ops.close_fn = ipc_close;
     1330        ops.exit_fn = ipc_exit;
     1331        ops.lock_fn = ipc_lock;
     1332        ops.setfileinfo_fn = ipc_setfileinfo;
     1333        ops.qfileinfo_fn = ipc_qfileinfo;
     1334        ops.fsinfo_fn = ipc_fsinfo;
     1335        ops.lpq_fn = ipc_lpq;
     1336        ops.search_first_fn = ipc_search_first;
     1337        ops.search_next_fn = ipc_search_next;
     1338        ops.search_close_fn = ipc_search_close;
     1339        ops.trans_fn = ipc_trans;
     1340        ops.logoff_fn = ipc_logoff;
     1341        ops.async_setup_fn = ipc_async_setup;
     1342        ops.cancel_fn = ipc_cancel;
    13351343
    13361344        /* register ourselves with the NTVFS subsystem. */
Note: See TracChangeset for help on using the changeset viewer.