s3:libsmb: don't reuse the callers stype variable in cli_NetServerEnum()
authorStefan Metzmacher <metze@samba.org>
Thu, 4 Feb 2010 13:03:20 +0000 (14:03 +0100)
committerKarolin Seeger <kseeger@samba.org>
Wed, 24 Feb 2010 15:25:09 +0000 (16:25 +0100)
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).
(cherry picked from commit f6484f7febd853122d4b91e52ee896d70686d9d2)

source/libsmb/clirap.c

index 61e2fb7f1a3ded9fec27cf39f2cd519fdf79bb96..d248d0cdd1bec15070db8c81fb49ccd4f5266ebb 100644 (file)
@@ -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);
                        }