summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2010-02-04 14:03:20 +0100
committerKarolin Seeger <kseeger@samba.org>2010-02-05 11:36:34 +0100
commitf6484f7febd853122d4b91e52ee896d70686d9d2 (patch)
treee5c138b26baebaefa579ecf99981cd4777e85798
parent0b36486fa7d2689635018c2fc883860251dc8066 (diff)
downloadsamba-f6484f7febd853122d4b91e52ee896d70686d9d2.tar.gz
s3:libsmb: don't reuse the callers stype variable in cli_NetServerEnum()
When we need to do more than one network operation to get the browse list we need to use the same 'stype' value each time. metze (cherry picked from commit c2e4746fa9d68e7601e8e90cc0144d2e65a695b6) Signed-off-by: Stefan Metzmacher <metze@samba.org> Fix bug #7098 (smbclient -L gives wrong results with a large browse list).
-rw-r--r--source/libsmb/clirap.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/source/libsmb/clirap.c b/source/libsmb/clirap.c
index 61e2fb7f1a3..d248d0cdd1b 100644
--- a/source/libsmb/clirap.c
+++ b/source/libsmb/clirap.c
@@ -364,6 +364,7 @@ bool cli_NetServerEnum(struct cli_state *cli, char *workgroup, uint32 stype,
const char *p1;
char *s1, *s2;
TALLOC_CTX *frame = talloc_stackframe();
+ uint32_t entry_stype;
if (p + 26 > rdata_end) {
TALLOC_FREE(frame);
@@ -387,7 +388,7 @@ bool cli_NetServerEnum(struct cli_state *cli, char *workgroup, uint32 stype,
len++;
}
- stype = IVAL(p,18) & ~SV_TYPE_LOCAL_LIST_ONLY;
+ entry_stype = IVAL(p,18) & ~SV_TYPE_LOCAL_LIST_ONLY;
pull_string_talloc(frame,rdata,0,
&s1,sname,16,STR_ASCII);
@@ -399,7 +400,7 @@ bool cli_NetServerEnum(struct cli_state *cli, char *workgroup, uint32 stype,
continue;
}
- fn(s1, stype, s2, state);
+ fn(s1, entry_stype, s2, state);
TALLOC_FREE(frame);
}