s3: Explicitly pass flags2 to clistr_pull_talloc
authorVolker Lendecke <vl@samba.org>
Thu, 5 Aug 2010 11:45:59 +0000 (13:45 +0200)
committerVolker Lendecke <vl@samba.org>
Thu, 5 Aug 2010 12:53:54 +0000 (14:53 +0200)
Required to eventually make cli_list async

source3/include/proto.h
source3/include/safe_string.h
source3/libsmb/clidfs.c
source3/libsmb/clifile.c
source3/libsmb/clilist.c
source3/libsmb/clistr.c

index dbc2d40c70a8648a37f07f71c6a61e07aae46b22..2ab1cfdf45561a9ef492674f8135cb766c331d63 100644 (file)
@@ -2646,7 +2646,8 @@ size_t clistr_pull_fn(const char *function,
 size_t clistr_pull_talloc_fn(const char *function,
                                unsigned int line,
                                TALLOC_CTX *ctx,
-                               const char *inbuf,
+                               const char *base,
+                               uint16_t flags2,
                                char **pp_dest,
                                const void *src,
                                int src_len,
index 43e43416d8d632a350427120441ce2f1bc571754..4ed7ff285979140c1da267a1d22ef56c646b4daf 100644 (file)
@@ -146,9 +146,9 @@ size_t __unsafe_string_function_usage_here_char__(void);
        clistr_pull_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, \
                        inbuf, dest, src, dest_len, src_len, flags)
 
-#define clistr_pull_talloc(ctx, inbuf, pp_dest, src, src_len, flags) \
+#define clistr_pull_talloc(ctx, base, flags2, pp_dest, src, src_len, flags) \
        clistr_pull_talloc_fn(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, \
-                       ctx, inbuf, pp_dest, src, src_len, flags)
+                             ctx, base, flags2, pp_dest, src, src_len, flags)
 
 #define srvstr_push(base_ptr, smb_flags2, dest, src, dest_len, flags) \
        srvstr_push_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, \
index 345d0f92123b353fed8386eaba186224ce96780f..f4b52687f83ea146c5f7be9e61fad20d54407ba4 100644 (file)
@@ -717,6 +717,7 @@ bool cli_dfs_get_referral(TALLOC_CTX *ctx,
                                goto out;
                        }
                        clistr_pull_talloc(ctx, cli->inbuf,
+                                          SVAL(cli->inbuf, smb_flg2),
                                           &referrals[i].dfspath,
                                           p+node_offset, -1,
                                           STR_TERMINATE|STR_UNICODE);
index 2067b79c52762b3c076dd7d5c85bfe66929a4580..48af0cc56d9e4553d238fed2233e9343c41ee516 100644 (file)
@@ -5022,8 +5022,9 @@ static void cli_notify_done(struct tevent_req *subreq)
        NTSTATUS status;
        uint8_t *params;
        uint32_t i, ofs, num_params;
+       uint16_t flags2;
 
-       status = cli_trans_recv(subreq, talloc_tos(), NULL, NULL, 0, NULL,
+       status = cli_trans_recv(subreq, talloc_tos(), &flags2, NULL, 0, NULL,
                                &params, 0, &num_params, NULL, 0, NULL);
        TALLOC_FREE(subreq);
        if (!NT_STATUS_IS_OK(status)) {
@@ -5068,8 +5069,8 @@ static void cli_notify_done(struct tevent_req *subreq)
                }
 
                state->changes[i].action = IVAL(params, ofs+4);
-               ret = clistr_pull_talloc(params, (char *)params, &name,
-                                        params+ofs+12, len,
+               ret = clistr_pull_talloc(params, (char *)params, flags2,
+                                        &name, params+ofs+12, len,
                                         STR_TERMINATE|STR_UNICODE);
                if (ret == -1) {
                        TALLOC_FREE(params);
index 56de11928190e8040712d67fc4a0b1dd096f6dd4..d0583f4e104a550b33f46ac31e5472c12b679828 100644 (file)
@@ -46,6 +46,8 @@ static size_t calc_next_entry_offset(const char *base, const char *pdata_end)
 static size_t interpret_long_filename(TALLOC_CTX *ctx,
                                        struct cli_state *cli,
                                        int level,
+                                       const char *base_ptr,
+                                       uint16_t recv_flags2,
                                        const char *p,
                                        const char *pdata_end,
                                        struct file_info *finfo,
@@ -101,7 +103,8 @@ static size_t interpret_long_filename(TALLOC_CTX *ctx,
                           between win2000 and win9x for this call
                           (tridge) */
                        ret = clistr_pull_talloc(ctx,
-                                               cli->inbuf,
+                                               base_ptr,
+                                               recv_flags2,
                                                &finfo->name,
                                                p,
                                                len+2,
@@ -133,7 +136,8 @@ static size_t interpret_long_filename(TALLOC_CTX *ctx,
                                return pdata_end - base;
                        }
                        ret = clistr_pull_talloc(ctx,
-                                               cli->inbuf,
+                                               base_ptr,
+                                               recv_flags2,
                                                &finfo->name,
                                                p,
                                                len,
@@ -194,7 +198,8 @@ static size_t interpret_long_filename(TALLOC_CTX *ctx,
                                return pdata_end - base;
                        }
                        ret = clistr_pull_talloc(ctx,
-                                               cli->inbuf,
+                                               base_ptr,
+                                               recv_flags2,
                                                &finfo->name,
                                                p,
                                                namelen,
@@ -408,6 +413,8 @@ int cli_list_new(struct cli_state *cli,const char *Mask,uint16 attribute,
                        p2 += interpret_long_filename(frame,
                                                        cli,
                                                        info_level,
+                                                       cli->inbuf,
+                                                       SVAL(cli->inbuf, smb_flg2),
                                                        p2,
                                                        rdata_end,
                                                        &finfo,
@@ -478,6 +485,8 @@ int cli_list_new(struct cli_state *cli,const char *Mask,uint16 attribute,
                         p += interpret_long_filename(frame,
                                                        cli,
                                                        info_level,
+                                                       cli->inbuf,
+                                                       SVAL(cli->inbuf, smb_flg2),
                                                        p,
                                                        rdata_end,
                                                        &finfo,
@@ -523,6 +532,7 @@ static bool interpret_short_filename(TALLOC_CTX *ctx,
        finfo->size = IVAL(p,26);
        ret = clistr_pull_talloc(ctx,
                        cli->inbuf,
+                       SVAL(cli->inbuf, smb_flg2),
                        &finfo->name,
                        p+30,
                        12,
index 4e490913123e0d54facade4da7f7ab4b9cc3058f..00b9bb2483aa1fabdbd1657e3cb10d259fa01d31 100644 (file)
@@ -68,7 +68,8 @@ size_t clistr_pull_fn(const char *function,
 size_t clistr_pull_talloc_fn(const char *function,
                                unsigned int line,
                                TALLOC_CTX *ctx,
-                               const char *inbuf,
+                               const char *base,
+                               uint16_t flags2,
                                char **pp_dest,
                                const void *src,
                                int src_len,
@@ -77,8 +78,8 @@ size_t clistr_pull_talloc_fn(const char *function,
        return pull_string_talloc_fn(function,
                                        line,
                                        ctx,
-                                       inbuf,
-                                       SVAL(inbuf, smb_flg2),
+                                       base,
+                                       flags2,
                                        pp_dest,
                                        src,
                                        src_len,