ndr: split out ndr enum functions
[ira/wip.git] / librpc / ndr / ndr.c
index d629d852e8dedb6286fb4624a96e9bfb5405d9e8..cb47ca1d60bb6130a71c90e4568930eea66bdb8b 100644 (file)
@@ -459,7 +459,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_subcontext_start(struct ndr_pull *ndr,
 
        case 4: {
                uint32_t content_size;
-               NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &content_size));
+               NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &content_size));
                if (size_is >= 0 && size_is != content_size) {
                        return ndr_pull_error(ndr, NDR_ERR_SUBCONTEXT, "Bad subcontext (PULL) size_is(%d) mismatch content_size %d", 
                                                (int)size_is, (int)content_size);
@@ -544,7 +544,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_subcontext_start(struct ndr_pull *ndr,
 
        subndr = talloc_zero(ndr, struct ndr_pull);
        NDR_ERR_HAVE_NO_MEMORY(subndr);
-       subndr->flags           = ndr->flags;
+       subndr->flags           = ndr->flags & ~LIBNDR_FLAG_NDR64;
        subndr->current_mem_ctx = ndr->current_mem_ctx;
 
        subndr->data = ndr->data + ndr->offset;
@@ -588,7 +588,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_subcontext_start(struct ndr_push *ndr,
 
        subndr = ndr_push_init_ctx(ndr, ndr->iconv_convenience);
        NDR_ERR_HAVE_NO_MEMORY(subndr);
-       subndr->flags   = ndr->flags;
+       subndr->flags   = ndr->flags & ~LIBNDR_FLAG_NDR64;
 
        *_subndr = subndr;
        return NDR_ERR_SUCCESS;
@@ -623,7 +623,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_subcontext_end(struct ndr_push *ndr,
                break;
 
        case 4: 
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, subndr->offset));
+               NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, subndr->offset));
                break;
 
        case 0xFFFFFC01: