drsuapi: fix samba4 callers after drsuapi.idl changes
authorStefan Metzmacher <metze@samba.org>
Tue, 19 Aug 2008 08:36:24 +0000 (10:36 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 20 Aug 2008 13:22:05 +0000 (15:22 +0200)
metze

source/dsdb/repl/drepl_out_helpers.c
source/libnet/libnet_become_dc.c
source/torture/rpc/dssync.c

index 3629a3b92bf3c68751ed57e60395fd1e3a262a0f..80b398ef5c93ba49d37e34b1c8efec3e94ec50f0 100644 (file)
@@ -314,27 +314,35 @@ static void dreplsrv_op_pull_source_get_changes_recv(struct rpc_request *req)
        if (*r->out.level == 1) {
                ctr_level = 1;
                ctr1 = &r->out.ctr.ctr1;
-       } else if (*r->out.level == 2) {
+       } else if (*r->out.level == 2 &&
+                  r->out.ctr.ctr2.mszip1.ts) {
                ctr_level = 1;
-               ctr1 = r->out.ctr.ctr2.mszip1.ctr1;
+               ctr1 = &r->out.ctr.ctr2.mszip1.ts->ctr1;
        } else if (*r->out.level == 6) {
                ctr_level = 6;
                ctr6 = &r->out.ctr.ctr6;
        } else if (*r->out.level == 7 &&
                   r->out.ctr.ctr7.level == 6 &&
-                  r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_MSZIP) {
+                  r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_MSZIP &&
+                  r->out.ctr.ctr7.ctr.mszip6.ts) {
                ctr_level = 6;
-               ctr6 = r->out.ctr.ctr7.ctr.mszip6.ctr6;
+               ctr6 = &r->out.ctr.ctr7.ctr.mszip6.ts->ctr6;
        } else if (*r->out.level == 7 &&
                   r->out.ctr.ctr7.level == 6 &&
-                  r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_XPRESS) {
+                  r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_XPRESS &&
+                  r->out.ctr.ctr7.ctr.xpress6.ts) {
                ctr_level = 6;
-               ctr6 = r->out.ctr.ctr7.ctr.xpress6.ctr6;
+               ctr6 = &r->out.ctr.ctr7.ctr.xpress6.ts->ctr6;
        } else {
                composite_error(c, werror_to_ntstatus(WERR_BAD_NET_RESP));
                return;
        }
 
+       if (!ctr1 && !ctr6) {
+               composite_error(c, werror_to_ntstatus(WERR_BAD_NET_RESP));
+               return;
+       }
+
        if (ctr_level == 6) {
                if (!W_ERROR_IS_OK(ctr6->drs_error)) {
                        composite_error(c, werror_to_ntstatus(ctr6->drs_error));
index 19391e798338d02d888b22166dd6fb3e69a30473..332b041e3691beaa9f3d613d268f3ebde218212f 100644 (file)
@@ -2465,26 +2465,33 @@ static WERROR becomeDC_drsuapi_pull_partition_recv(struct libnet_BecomeDC_state
        if (*r->out.level == 1) {
                ctr_level = 1;
                ctr1 = &r->out.ctr.ctr1;
-       } else if (*r->out.level == 2) {
+       } else if (*r->out.level == 2 &&
+                  r->out.ctr.ctr2.mszip1.ts) {
                ctr_level = 1;
-               ctr1 = r->out.ctr.ctr2.mszip1.ctr1;
+               ctr1 = &r->out.ctr.ctr2.mszip1.ts->ctr1;
        } else if (*r->out.level == 6) {
                ctr_level = 6;
                ctr6 = &r->out.ctr.ctr6;
        } else if (*r->out.level == 7 &&
                   r->out.ctr.ctr7.level == 6 &&
-                  r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_MSZIP) {
+                  r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_MSZIP &&
+                  r->out.ctr.ctr7.ctr.mszip6.ts) {
                ctr_level = 6;
-               ctr6 = r->out.ctr.ctr7.ctr.mszip6.ctr6;
+               ctr6 = &r->out.ctr.ctr7.ctr.mszip6.ts->ctr6;
        } else if (*r->out.level == 7 &&
                   r->out.ctr.ctr7.level == 6 &&
-                  r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_XPRESS) {
+                  r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_XPRESS &&
+                  r->out.ctr.ctr7.ctr.xpress6.ts) {
                ctr_level = 6;
-               ctr6 = r->out.ctr.ctr7.ctr.xpress6.ctr6;
+               ctr6 = &r->out.ctr.ctr7.ctr.xpress6.ts->ctr6;
        } else {
                return WERR_BAD_NET_RESP;
        }
 
+       if (!ctr1 && ! ctr6) {
+               return WERR_BAD_NET_RESP;
+       }
+
        if (ctr_level == 6) {
                if (!W_ERROR_IS_OK(ctr6->drs_error)) {
                        return ctr6->drs_error;
index 2739081246c5228b1e3d5584a289124d76473a5e..e9346f96055d24e9e8bccd101607f87e1ddeb8d6 100644 (file)
@@ -747,9 +747,10 @@ static bool test_FetchData(struct torture_context *tctx, struct DsSyncTest *ctx)
                        if (ret == true && *r.out.level == 1) {
                                out_level = 1;
                                ctr1 = &r.out.ctr.ctr1;
-                       } else if (ret == true && *r.out.level == 2) {
+                       } else if (ret == true && *r.out.level == 2 &&
+                                  r.out.ctr.ctr2.mszip1.ts) {
                                out_level = 1;
-                               ctr1 = r.out.ctr.ctr2.mszip1.ctr1;
+                               ctr1 = &r.out.ctr.ctr2.mszip1.ts->ctr1;
                        }
 
                        if (out_level == 1) {
@@ -770,14 +771,16 @@ static bool test_FetchData(struct torture_context *tctx, struct DsSyncTest *ctx)
                                ctr6 = &r.out.ctr.ctr6;
                        } else if (ret == true && *r.out.level == 7
                                   && r.out.ctr.ctr7.level == 6
-                                  && r.out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_MSZIP) {
+                                  && r.out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_MSZIP
+                                  && r.out.ctr.ctr7.ctr.mszip6.ts) {
                                out_level = 6;
-                               ctr6 = r.out.ctr.ctr7.ctr.mszip6.ctr6;
+                               ctr6 = &r.out.ctr.ctr7.ctr.mszip6.ts->ctr6;
                        } else if (ret == true && *r.out.level == 7
                                   && r.out.ctr.ctr7.level == 6
-                                  && r.out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_XPRESS) {
+                                  && r.out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_XPRESS
+                                  && r.out.ctr.ctr7.ctr.xpress6.ts) {
                                out_level = 6;
-                               ctr6 = r.out.ctr.ctr7.ctr.xpress6.ctr6;
+                               ctr6 = &r.out.ctr.ctr7.ctr.xpress6.ts->ctr6;
                        }
 
                        if (out_level == 6) {