]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: libsmb: Change cli_getattrE() and async versions to return a 32-bit attribute.
authorJeremy Allison <jra@samba.org>
Wed, 3 Jun 2020 20:00:56 +0000 (13:00 -0700)
committerJeremy Allison <jra@samba.org>
Thu, 4 Jun 2020 17:11:37 +0000 (17:11 +0000)
Fix all callers.

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/client/client.c
source3/libsmb/clifile.c
source3/libsmb/libsmb_stat.c
source3/libsmb/proto.h
source3/utils/net_rpc_printer.c

index fe6a06c9cbd3ddc7f3b176adf5777e539d68df7a..0c20839e27d327945beb28c5b6c3bf102246d152 100644 (file)
@@ -1186,8 +1186,7 @@ static int do_get(const char *rname, const char *lname_in, bool reget)
        status = cli_qfileinfo_basic(targetcli, fnum, &attr, &size, NULL, NULL,
                                     NULL, NULL, NULL);
        if (!NT_STATUS_IS_OK(status)) {
-               uint16_t sattr = 0;
-               status = cli_getattrE(targetcli, fnum, &sattr, &size, NULL, NULL,
+               status = cli_getattrE(targetcli, fnum, &attr, &size, NULL, NULL,
                                      NULL);
                if(!NT_STATUS_IS_OK(status)) {
                        d_printf("getattrib: %s\n", nt_errstr(status));
@@ -1196,7 +1195,6 @@ static int do_get(const char *rname, const char *lname_in, bool reget)
                        }
                        return 1;
                }
-               attr = sattr;
        }
 
        DEBUG(1,("getting file %s of size %.0f as %s ",
index 72d6e1de52a020ee5e7255a6e2b0cf9344db1943..868b8f357c1de28d138d84ca25614f8718fdf693 100644 (file)
@@ -4050,7 +4050,7 @@ static void cli_getattrE_done(struct tevent_req *subreq);
 struct cli_getattrE_state {
        uint16_t vwv[1];
        int zone_offset;
-       uint16_t attr;
+       uint32_t attr;
        off_t size;
        time_t change_time;
        time_t access_time;
@@ -4110,7 +4110,7 @@ static void cli_getattrE_done(struct tevent_req *subreq)
 }
 
 NTSTATUS cli_getattrE_recv(struct tevent_req *req,
-                       uint16_t *pattr,
+                       uint32_t *pattr,
                        off_t *size,
                        time_t *change_time,
                        time_t *access_time,
@@ -4143,7 +4143,7 @@ NTSTATUS cli_getattrE_recv(struct tevent_req *req,
 
 NTSTATUS cli_getattrE(struct cli_state *cli,
                        uint16_t fnum,
-                       uint16_t *pattr,
+                       uint32_t *pattr,
                        off_t *size,
                        time_t *change_time,
                        time_t *access_time,
@@ -4155,21 +4155,13 @@ NTSTATUS cli_getattrE(struct cli_state *cli,
        NTSTATUS status = NT_STATUS_OK;
 
        if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
-               uint32_t attr = 0;
-               status = cli_smb2_getattrE(cli,
+               return cli_smb2_getattrE(cli,
                                        fnum,
-                                       &attr,
+                                       pattr,
                                        size,
                                        change_time,
                                        access_time,
                                        write_time);
-               if (!NT_STATUS_IS_OK(status)) {
-                       return status;
-               }
-               if (pattr != NULL) {
-                       *pattr = attr;
-               }
-               return status;
        }
 
        frame = talloc_stackframe();
index 70023fa4c234e6a49b6be916a975e4ea50bea085..92b98e9b3f795f6e7049647741fc7878081ed268 100644 (file)
@@ -299,9 +299,8 @@ SMBC_fstat_ctx(SMBCCTX *context,
                                     &change_time_ts,
                                     &ino))) {
                time_t change_time, access_time, write_time;
-               uint16_t sattr = 0;
 
-               if (!NT_STATUS_IS_OK(cli_getattrE(targetcli, file->cli_fd, &sattr, &size,
+               if (!NT_STATUS_IS_OK(cli_getattrE(targetcli, file->cli_fd, &attr, &size,
                                   &change_time, &access_time, &write_time))) {
                        errno = EINVAL;
                        TALLOC_FREE(frame);
@@ -310,7 +309,6 @@ SMBC_fstat_ctx(SMBCCTX *context,
                change_time_ts = convert_time_t_to_timespec(change_time);
                access_time_ts = convert_time_t_to_timespec(access_time);
                write_time_ts = convert_time_t_to_timespec(write_time);
-               attr = sattr;
        }
 
        setup_stat(st,
index 40f8433a6e1a60eb034bb2dfcfbefc11292edc3b..e4fb3de671efef54f9d79e47d7b425f754ebf53a 100644 (file)
@@ -518,14 +518,14 @@ struct tevent_req *cli_getattrE_send(TALLOC_CTX *mem_ctx,
                                struct cli_state *cli,
                                 uint16_t fnum);
 NTSTATUS cli_getattrE_recv(struct tevent_req *req,
-                        uint16_t *pattr,
+                        uint32_t *pattr,
                         off_t *size,
                         time_t *change_time,
                         time_t *access_time,
                         time_t *write_time);
 NTSTATUS cli_getattrE(struct cli_state *cli,
                        uint16_t fnum,
-                       uint16_t *pattr,
+                       uint32_t *pattr,
                        off_t *size,
                        time_t *change_time,
                        time_t *access_time,
index 9eb7554dd78c0e73b22e9dabba2a27ade31abc50..77149a681c8e0083c78b4b0ea239c3e4baf1be20 100644 (file)
@@ -165,7 +165,7 @@ NTSTATUS net_copy_fileattr(struct net_context *c,
        uint16_t fnum_src = 0;
        uint16_t fnum_dst = 0;
        struct security_descriptor *sd = NULL;
-       uint16_t attr;
+       uint32_t attr;
        time_t f_atime, f_ctime, f_mtime;
 
        if (!copy_timestamps && !copy_acls && !copy_attrs)