diff options
author | Jeremy Allison <jra@samba.org> | 2004-03-30 18:38:21 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2004-03-30 18:38:21 +0000 |
commit | a1994d1c967082a5e97ff5ce01c9d5c63deb2db0 (patch) | |
tree | 4e48df4ff69c581ddde4cd6f7f6bfc0f88a16ca7 /source3 | |
parent | 62ae6e36f09c2ec402bc7816651bfaa1af2e6bb6 (diff) | |
download | samba-a1994d1c967082a5e97ff5ce01c9d5c63deb2db0.tar.gz samba-a1994d1c967082a5e97ff5ce01c9d5c63deb2db0.tar.bz2 samba-a1994d1c967082a5e97ff5ce01c9d5c63deb2db0.zip |
Ensure we cope correctly with ea length of zero. Detect torture fail correctly.
Jeremy.
(This used to be commit 43db249fb814cef99afecd22c20a824d2519faf9)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/libsmb/clifile.c | 6 | ||||
-rw-r--r-- | source3/torture/torture.c | 12 |
2 files changed, 18 insertions, 0 deletions
diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c index 52164dc0b4..bf7923ec78 100644 --- a/source3/libsmb/clifile.c +++ b/source3/libsmb/clifile.c @@ -1297,6 +1297,12 @@ static BOOL cli_get_ea_list(struct cli_state *cli, goto out; } + if (ea_size == 0) { + /* No EA's present. */ + ret = True; + goto out; + } + p = rdata + 4; ea_size -= 4; diff --git a/source3/torture/torture.c b/source3/torture/torture.c index ead9d69cf1..17a2ee00a8 100644 --- a/source3/torture/torture.c +++ b/source3/torture/torture.c @@ -4366,6 +4366,12 @@ static BOOL run_eatest(int dummy) } printf("num_eas = %d\n", num_eas); + + if (num_eas != 20) { + printf("Should be 20 EA's stored... failing.\n"); + correct = False; + } + for (i = 0; i < num_eas; i++) { printf("%d: ea_name = %s. Val = ", i, ea_list[i].name); dump_data(0, ea_list[i].value.data, ea_list[i].value.length); @@ -4399,6 +4405,12 @@ static BOOL run_eatest(int dummy) correct = False; } + /* Try and delete a non existant EA. */ + if (!cli_set_ea_path(cli, fname, "foo", "", 0)) { + printf("deleting non-existant EA 'foo' should succeed. %s\n", cli_errstr(cli)); + correct = False; + } + talloc_destroy(mem_ctx); if (!torture_close_connection(cli)) { correct = False; |