]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3: libsmb: Fix cli_smb2_getatr() to return a 32 bit attribute.
authorJeremy Allison <jra@samba.org>
Wed, 3 Jun 2020 19:13:33 +0000 (12:13 -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/libsmb/cli_smb2_fnum.c
source3/libsmb/cli_smb2_fnum.h
source3/libsmb/clifile.c

index 097c4fca3a0917aa6927bf3b7f3557a81706c5a0..f42fd2e7c71294c5c99f4965257e9c9c69b10cf8 100644 (file)
@@ -2145,14 +2145,13 @@ NTSTATUS cli_smb2_getattrE(struct cli_state *cli,
 
 NTSTATUS cli_smb2_getatr(struct cli_state *cli,
                        const char *name,
-                       uint16_t *pattr,
+                       uint32_t *pattr,
                        off_t *size,
                        time_t *write_time)
 {
        NTSTATUS status;
        uint16_t fnum = 0xffff;
        struct smb2_hnd *ph = NULL;
-       uint32_t attr = 0;
        TALLOC_CTX *frame = talloc_stackframe();
 
        if (smbXcli_conn_has_async_calls(cli->conn)) {
@@ -2185,7 +2184,7 @@ NTSTATUS cli_smb2_getatr(struct cli_state *cli,
        }
        status = cli_smb2_getattrE(cli,
                                fnum,
-                               &attr,
+                               pattr,
                                size,
                                NULL,
                                NULL,
@@ -2194,10 +2193,6 @@ NTSTATUS cli_smb2_getatr(struct cli_state *cli,
                goto fail;
        }
 
-       if (pattr != NULL) {
-               *pattr = attr;
-       }
-
   fail:
 
        if (fnum != 0xffff) {
index db603672014c49fa75dcb2b9254afa36556c7f9b..171e7729d3c1ee76095e71d3cb753b49e961f578 100644 (file)
@@ -173,7 +173,7 @@ NTSTATUS cli_smb2_getattrE(struct cli_state *cli,
                        time_t *write_time);
 NTSTATUS cli_smb2_getatr(struct cli_state *cli,
                        const char *name,
-                       uint16_t *pattr,
+                       uint32_t *pattr,
                        off_t *size,
                        time_t *write_time);
 NTSTATUS cli_smb2_qpathinfo2(struct cli_state *cli,
index 9afd431c6cc1902c6d916d6be6d47a150ffaad5d..72d6e1de52a020ee5e7255a6e2b0cf9344db1943 100644 (file)
@@ -4327,11 +4327,19 @@ NTSTATUS cli_getatr(struct cli_state *cli,
        NTSTATUS status = NT_STATUS_OK;
 
        if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) {
-               return cli_smb2_getatr(cli,
+               uint32_t attr;
+               status = cli_smb2_getatr(cli,
                                        fname,
-                                       pattr,
+                                       &attr,
                                        size,
                                        write_time);
+               if (!NT_STATUS_IS_OK(status)) {
+                       return status;
+               }
+               if (pattr != NULL) {
+                       *pattr = attr;
+               }
+               return status;
        }
 
        frame = talloc_stackframe();