diff options
| author | Matthieu Patou <mat@matws.net> | 2013-05-17 07:19:22 -0700 | 
|---|---|---|
| committer | Andrew Bartlett <abartlet@samba.org> | 2013-05-20 21:54:06 +1000 | 
| commit | d42a31d68f3154651f31618f74e2df77084f12f3 (patch) | |
| tree | fd59bdfa8423447402013350b0cf4b9526ea8dce | |
| parent | d5b440fa897ace7bef4d02a7ad1af556819139a6 (diff) | |
| download | samba-d42a31d68f3154651f31618f74e2df77084f12f3.tar.gz samba-d42a31d68f3154651f31618f74e2df77084f12f3.tar.bz2 samba-d42a31d68f3154651f31618f74e2df77084f12f3.zip  | |
smbtorture: fix crash when the returning a crackname with an empty name
when a valid one was expected
Signed-off-by: Matthieu Patou <mat@matws.net>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
| -rw-r--r-- | source4/torture/rpc/drsuapi_cracknames.c | 18 | 
1 files changed, 17 insertions, 1 deletions
diff --git a/source4/torture/rpc/drsuapi_cracknames.c b/source4/torture/rpc/drsuapi_cracknames.c index 8d1ab6fc27..82c9a38af4 100644 --- a/source4/torture/rpc/drsuapi_cracknames.c +++ b/source4/torture/rpc/drsuapi_cracknames.c @@ -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,  | 
