From d0a7d7e87ece03a63840b0f143502075d6fa5527 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 4 Jun 2014 14:19:30 -0700 Subject: s3: libsmb: Make cli_smb2_dskattr() a 64-bit interface. Remove the fallback call from cli_dskattr() (now it's not called from external client code). Signed-off-by: Jeremy Allison Reviewed-by: Volker Lendecke --- source3/libsmb/cli_smb2_fnum.c | 8 ++++---- source3/libsmb/cli_smb2_fnum.h | 6 +++--- source3/libsmb/clifile.c | 10 +++------- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/source3/libsmb/cli_smb2_fnum.c b/source3/libsmb/cli_smb2_fnum.c index 8eb776a1324..950398a5cb9 100644 --- a/source3/libsmb/cli_smb2_fnum.c +++ b/source3/libsmb/cli_smb2_fnum.c @@ -1411,7 +1411,7 @@ NTSTATUS cli_smb2_setattrE(struct cli_state *cli, Synchronous only. ***************************************************************/ -NTSTATUS cli_smb2_dskattr(struct cli_state *cli, int *bsize, int *total, int *avail) +NTSTATUS cli_smb2_dskattr(struct cli_state *cli, uint64_t *bsize, uint64_t *total, uint64_t *avail) { NTSTATUS status; uint16_t fnum = 0xffff; @@ -1492,13 +1492,13 @@ NTSTATUS cli_smb2_dskattr(struct cli_state *cli, int *bsize, int *total, int *av bytes_per_sector = IVAL(outbuf.data, 20); if (bsize) { - *bsize = (int)(sectors_per_unit * bytes_per_sector); + *bsize = (uint64_t)sectors_per_unit * (uint64_t)bytes_per_sector; } if (total) { - *total = (int)total_size; + *total = total_size; } if (avail) { - *avail = (int)size_free; + *avail = size_free; } status = NT_STATUS_OK; diff --git a/source3/libsmb/cli_smb2_fnum.h b/source3/libsmb/cli_smb2_fnum.h index 61a0f6851ee..a5ed5a0072b 100644 --- a/source3/libsmb/cli_smb2_fnum.h +++ b/source3/libsmb/cli_smb2_fnum.h @@ -100,9 +100,9 @@ NTSTATUS cli_smb2_setattrE(struct cli_state *cli, time_t access_time, time_t write_time); NTSTATUS cli_smb2_dskattr(struct cli_state *cli, - int *bsize, - int *total, - int *avail); + uint64_t *bsize, + uint64_t *total, + uint64_t *avail); NTSTATUS cli_smb2_query_security_descriptor(struct cli_state *cli, uint16_t fnum, uint32_t sec_info, diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c index 8bb1512f787..18ed5297b71 100644 --- a/source3/libsmb/clifile.c +++ b/source3/libsmb/clifile.c @@ -4094,10 +4094,6 @@ NTSTATUS cli_dskattr(struct cli_state *cli, int *bsize, int *total, int *avail) struct tevent_req *req = NULL; NTSTATUS status = NT_STATUS_OK; - if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) { - return cli_smb2_dskattr(cli, bsize, total, avail); - } - frame = talloc_stackframe(); if (smbXcli_conn_has_async_calls(cli->conn)) { @@ -4138,11 +4134,11 @@ NTSTATUS cli_disk_size(struct cli_state *cli, uint64_t *bsize, uint64_t *total, NTSTATUS status; if (smbXcli_conn_protocol(cli->conn) >= PROTOCOL_SMB2_02) { - status = cli_smb2_dskattr(cli, &old_bsize, &old_total, &old_avail); - } else { - status = cli_dskattr(cli, &old_bsize, &old_total, &old_avail); + return cli_smb2_dskattr(cli, bsize, total, avail); } + /* Old SMB1 core protocol fallback. */ + status = cli_dskattr(cli, &old_bsize, &old_total, &old_avail); if (!NT_STATUS_IS_OK(status)) { return status; } -- cgit