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/libcli/util
Files:
2 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source4/libcli/util/clilsa.c

    r860 r988  
    3333#include "librpc/gen_ndr/ndr_lsa_c.h"
    3434#include "libcli/util/clilsa.h"
     35#include "libcli/smb/smbXcli_base.h"
    3536
    3637struct smblsa_state {
    37         struct dcerpc_pipe *pipe;
     38        struct dcerpc_binding_handle *binding_handle;
    3839        struct smbcli_tree *ipc_tree;
    3940        struct policy_handle handle;
     
    4647{
    4748        struct smblsa_state *lsa;
     49        struct dcerpc_pipe *lsa_pipe;
    4850        NTSTATUS status;
    4951        struct lsa_OpenPolicy r;
     
    6971        /* connect to IPC$ */
    7072        tcon.generic.level = RAW_TCON_TCONX;
    71         tcon.tconx.in.flags = 0;
     73        tcon.tconx.in.flags = TCONX_FLAG_EXTENDED_RESPONSE;
     74        tcon.tconx.in.flags |= TCONX_FLAG_EXTENDED_SIGNATURES;
    7275        tcon.tconx.in.password = data_blob(NULL, 0);
    7376        tcon.tconx.in.path = "ipc$";
     
    8083        lsa->ipc_tree->tid = tcon.tconx.out.tid;
    8184
    82         lsa->pipe = dcerpc_pipe_init(lsa, cli->transport->socket->event.ctx);
    83         if (lsa->pipe == NULL) {
     85        if (tcon.tconx.out.options & SMB_EXTENDED_SIGNATURES) {
     86                smb1cli_session_protect_session_key(cli->session->smbXcli);
     87        }
     88
     89        lsa_pipe = dcerpc_pipe_init(lsa, cli->transport->ev);
     90        if (lsa_pipe == NULL) {
    8491                talloc_free(lsa);
    8592                return NT_STATUS_NO_MEMORY;
     
    8794
    8895        /* open the LSA pipe */
    89         status = dcerpc_pipe_open_smb(lsa->pipe, lsa->ipc_tree, NDR_LSARPC_NAME);
     96        status = dcerpc_pipe_open_smb(lsa_pipe, lsa->ipc_tree, NDR_LSARPC_NAME);
    9097        if (!NT_STATUS_IS_OK(status)) {
    9198                talloc_free(lsa);
     
    94101
    95102        /* bind to the LSA pipe */
    96         status = dcerpc_bind_auth_none(lsa->pipe, &ndr_table_lsarpc);
     103        status = dcerpc_bind_auth_none(lsa_pipe, &ndr_table_lsarpc);
    97104        if (!NT_STATUS_IS_OK(status)) {
    98105                talloc_free(lsa);
    99106                return status;
    100107        }
    101 
     108        lsa->binding_handle = lsa_pipe->binding_handle;
    102109
    103110        /* open a lsa policy handle */
     
    119126        r.out.handle = &lsa->handle;
    120127
    121         status = dcerpc_lsa_OpenPolicy_r(lsa->pipe->binding_handle, lsa, &r);
     128        status = dcerpc_lsa_OpenPolicy_r(lsa->binding_handle, lsa, &r);
    122129        if (!NT_STATUS_IS_OK(status)) {
    123130                talloc_free(lsa);
     
    155162        r.out.rights = rights;
    156163
    157         status = dcerpc_lsa_EnumAccountRights_r(cli->lsa->pipe->binding_handle, mem_ctx, &r);
     164        status = dcerpc_lsa_EnumAccountRights_r(cli->lsa->binding_handle, mem_ctx, &r);
    158165        if (!NT_STATUS_IS_OK(status)) {
    159166                return status;
     
    244251        r.out.domains = &domains;
    245252
    246         status = dcerpc_lsa_LookupSids_r(cli->lsa->pipe->binding_handle, mem_ctx2, &r);
     253        status = dcerpc_lsa_LookupSids_r(cli->lsa->binding_handle, mem_ctx2, &r);
    247254        if (!NT_STATUS_IS_OK(status)) {
    248255                talloc_free(mem_ctx2);
     
    319326        r.out.domains = &domains;
    320327
    321         status = dcerpc_lsa_LookupNames_r(cli->lsa->pipe->binding_handle, mem_ctx2, &r);
     328        status = dcerpc_lsa_LookupNames_r(cli->lsa->binding_handle, mem_ctx2, &r);
    322329        if (!NT_STATUS_IS_OK(status)) {
    323330                talloc_free(mem_ctx2);
     
    368375        r.in.rights = rights;
    369376
    370         status = dcerpc_lsa_AddAccountRights_r(cli->lsa->pipe->binding_handle, mem_ctx, &r);
     377        status = dcerpc_lsa_AddAccountRights_r(cli->lsa->binding_handle, mem_ctx, &r);
    371378        if (!NT_STATUS_IS_OK(status)) {
    372379                return status;
     
    396403        r.in.rights = rights;
    397404
    398         status = dcerpc_lsa_RemoveAccountRights_r(cli->lsa->pipe->binding_handle, mem_ctx, &r);
     405        status = dcerpc_lsa_RemoveAccountRights_r(cli->lsa->binding_handle, mem_ctx, &r);
    399406        if (!NT_STATUS_IS_OK(status)) {
    400407                return status;
  • vendor/current/source4/libcli/util/pyerrors.h

    r740 r988  
    2323#define PyErr_FromWERROR(err) Py_BuildValue("(i,s)", W_ERROR_V(err), discard_const_p(char, win_errstr(err)))
    2424
     25#define PyErr_FromHRESULT(err) Py_BuildValue("(i,s)", HRES_ERROR_V(err), discard_const_p(char, hresult_errstr_const(err)))
     26
    2527#define PyErr_FromNTSTATUS(status) Py_BuildValue("(i,s)", NT_STATUS_V(status), discard_const_p(char, get_friendly_nt_error_msg(status)))
    2628
     
    3941        }
    4042
    41 #define PyErr_WERROR_IS_ERR_RAISE(status) \
     43#define PyErr_NTSTATUS_NOT_OK_RAISE(status) \
     44        if (!NT_STATUS_IS_OK(status)) { \
     45                PyErr_SetNTSTATUS(status); \
     46                return NULL; \
     47        }
     48
     49#define PyErr_WERROR_NOT_OK_RAISE(status) \
    4250        if (!W_ERROR_IS_OK(status)) { \
    4351                PyErr_SetWERROR(status); \
Note: See TracChangeset for help on using the changeset viewer.