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/lib/com
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • vendor/current/source4/lib/com/classes/simple.c

    r414 r988  
    2222#include "lib/com/com.h"
    2323#include "librpc/gen_ndr/com_dcom.h"
     24
     25NTSTATUS com_simple_init(void);
    2426
    2527static struct IClassFactory_vtable simple_classobject_vtable;
  • vendor/current/source4/lib/com/dcom/dcom.h

    r414 r988  
    5151struct dcom_object_exporter *object_exporter_by_oxid(struct com_context *ctx, uint64_t oxid);
    5252struct dcom_object_exporter *object_exporter_by_ip(struct com_context *ctx, struct IUnknown *ip);
    53 WERROR dcom_create_object(struct com_context *ctx, struct GUID *clsid, const char *server, int num_ifaces, struct GUID *iid, struct IUnknown ***ip, WERROR *results);
     53WERROR dcom_create_object(struct com_context *ctx, struct GUID *clsid, const char *server, int num_ifaces, struct GUID *iid, struct IUnknown ***ip, HRESULT *results);
    5454WERROR dcom_get_class_object(struct com_context *ctx, struct GUID *clsid, const char *server, struct GUID *iid, struct IUnknown **ip);
    5555NTSTATUS dcom_get_pipe(struct IUnknown *iface, struct dcerpc_pipe **pp);
  • vendor/current/source4/lib/com/dcom/main.c

    r740 r988  
    3737static NTSTATUS dcerpc_binding_from_STRINGBINDING(TALLOC_CTX *mem_ctx, struct dcerpc_binding **b_out, struct STRINGBINDING *bd)
    3838{
    39         char *host, *endpoint;
     39        char *tstr;
     40        char *bstr;
     41        enum dcerpc_transport_t transport;
    4042        struct dcerpc_binding *b;
    4143
    42         b = talloc_zero(mem_ctx, struct dcerpc_binding);
    43         if (!b) {
     44        transport = dcerpc_transport_by_endpoint_protocol(bd->wTowerId);
     45        if (transport == NCA_UNKNOWN) {
     46                DEBUG(1, ("Can't find transport match endpoint protocol %d\n", bd->wTowerId));
     47                return NT_STATUS_NOT_SUPPORTED;
     48        }
     49
     50        tstr = derpc_transport_string_by_transport(transport);
     51        bstr = talloc_asprintf(mem_ctx, "%s:%s", tstr, bd->NetworkAddr);
     52        if (bstr == NULL) {
    4453                return NT_STATUS_NO_MEMORY;
    4554        }
    46        
    47         b->transport = dcerpc_transport_by_endpoint_protocol(bd->wTowerId);
    48 
    49         if (b->transport == -1) {
    50                 DEBUG(1, ("Can't find transport match endpoint protocol %d\n", bd->wTowerId));
    51                 talloc_free(b);
    52                 return NT_STATUS_NOT_SUPPORTED;
    53         }
    54 
    55         host = talloc_strdup(b, bd->NetworkAddr);
    56         endpoint = strchr(host, '[');
    57 
    58         if (endpoint) {
    59                 *endpoint = '\0';
    60                 endpoint++;
    61 
    62                 endpoint[strlen(endpoint)-1] = '\0';
    63         }
    64 
    65         b->host = host;
    66         b->endpoint = talloc_strdup(b, endpoint);
     55
     56        status = dcerpc_parse_binding(mem_ctx, bstr, &b);
     57        TALLOC_FREE(bstr);
     58        if (!NT_STATUS_IS_OK(status)) {
     59                return status;
     60        }
    6761
    6862        *b_out = b;
     
    247241}
    248242
    249 WERROR dcom_create_object(struct com_context *ctx, struct GUID *clsid, const char *server, int num_ifaces, struct GUID *iid, struct IUnknown ***ip, WERROR *results)
     243WERROR dcom_create_object(struct com_context *ctx, struct GUID *clsid, const char *server, int num_ifaces, struct GUID *iid, struct IUnknown ***ip, HRESULT *results)
    250244{
    251245        uint16_t protseq[] = DCOM_NEGOTIATED_PROTOCOLS;
     
    256250        struct DUALSTRINGARRAY *pds;
    257251        int i;
    258         WERROR hr;
     252        HRESULT hr;
    259253        uint64_t oxid;
    260254        struct GUID ipidRemUnknown;
     
    308302                goto end;
    309303        }
    310        
    311         if(!W_ERROR_IS_OK(hr)) {
     304
     305        if(!HRES_IS_OK(hr)) {
    312306                goto end;
    313307        }
  • vendor/current/source4/lib/com/main.c

    r740 r988  
    2929        *ctx = talloc(NULL, struct com_context);
    3030        if (event_ctx == NULL) {
    31                 event_ctx = event_context_init(*ctx);
     31                event_ctx = samba_tevent_context_init(*ctx);
    3232        }
    3333        (*ctx)->event_ctx = event_ctx;
  • vendor/current/source4/lib/com/pycom.c

    r740 r988  
    2323#include "librpc/ndr/libndr.h"
    2424#include "libcli/util/pyerrors.h"
     25
     26void initcom(void);
    2527
    2628static struct com_context *py_com_ctx = NULL; /* FIXME: evil global */
  • vendor/current/source4/lib/com/tables.c

    r478 r988  
    7070
    7171        if (!f) {
     72                dlclose(mod);
    7273                return NULL;
    7374        }
  • vendor/current/source4/lib/com/wscript_build

    r740 r988  
    33bld.SAMBA_SUBSYSTEM('COM',
    44        source='tables.c rot.c main.c',
     5        allow_warnings=True,
    56        deps='samba-util samba-hostconfig events ndr NDR_DCOM'
    67        )
     
    2021bld.SAMBA_MODULE('com_simple',
    2122        source='classes/simple.c',
     23        allow_warnings=True,
    2224        deps='talloc',
    2325        subsystem='COM',
Note: See TracChangeset for help on using the changeset viewer.