smbtorture: fix crash when the returning a crackname with an empty name
authorMatthieu Patou <mat@matws.net>
Fri, 17 May 2013 14:19:22 +0000 (07:19 -0700)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 20 May 2013 11:54:06 +0000 (21:54 +1000)
when a valid one was expected

Signed-off-by: Matthieu Patou <mat@matws.net>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/torture/rpc/drsuapi_cracknames.c

index 8d1ab6fc277d93080f2479e302902de89e7bdab3..82c9a38af49d7c59d14872cea5aae1400679183c 100644 (file)
@@ -956,9 +956,25 @@ bool test_DsCrackNames(struct torture_context *tctx,
                                                        comment);
                                        torture_fail(tctx, err_msg);
                                }
+                       } else if (crack[i].expected_str &&
+                                  (!r.out.ctr->ctr1->count ||
+                                   !r.out.ctr->ctr1->array[0].result_name))
+                       {
+                               if (!r.out.ctr->ctr1->count) {
+                                       err_msg = talloc_asprintf(mem_ctx,
+                                                                 "DsCrackNames failed - got 0 entries, expected %s on %s",
+                                                                 crack[i].expected_str, comment);
+                                       torture_fail(tctx, err_msg);
+                               } else {
+                                       err_msg = talloc_asprintf(mem_ctx,
+                                                                 "DsCrackNames failed - got NULL pointer, expected %s on %s",
+                                                                 crack[i].expected_str, comment);
+                                       torture_fail(tctx, err_msg);
+                               }
                        } else if (crack[i].expected_str
                                   && (strcmp(r.out.ctr->ctr1->array[0].result_name,
-                                             crack[i].expected_str) != 0)) {
+                                             crack[i].expected_str) != 0))
+                       {
                                if (strcasecmp(r.out.ctr->ctr1->array[0].result_name,
                                               crack[i].expected_str) != 0) {
                                        err_msg = talloc_asprintf(mem_ctx,