[SCM] Samba Shared Repository - branch master updated
Jeremy Allison
jra at samba.org
Tue Apr 30 23:49:01 UTC 2024
The branch, master has been updated
via 6bf51860a00 smbd: Remove unused [push_pull]_file_id_24
via 5ef6a8a01f4 smbd: Use struct oplock_break_message for MSG_SMB_KERNEL_BREAK
via 7d860a73ca4 smbd: Remove message_to_share_mode_entry and vice versa
via 037b9dac21b smbd: Use struct oplock_break_message for MSG_CLOSE_FILE
via e2201a8dff3 smbd: Fix a typo
via 8f1cc217a89 smbd: Simplify sending oplock_break_message
via 4fe0808ebed lib: Convert push_file_id_16 to take uint8_t instead of char
via e889d76fad0 vfs: Convert return_data from char * to uint8_t
via 6f2aa43a3fe passdb: Use getline(3) to read our old machine sid
via 30b7cf9b3c0 pylibsmb: Avoid talloc()
via 3f17f194294 pylibsmb: clang-format for the calls to Py_BuildValue()
via 8ef24d670b7 pylibsmb: Return reparse_tag from directory listing
via ceea95af632 libsmb: Slightly simplify py_cli_list()
via 5d51be58914 smbd: Fix a copy&paste error in smbXsrv_client_remove()
via c2b80caf5ed smbd: Use direct struct initialization in smbXsrv_client
via 60b724a7e59 smbd: Save a few lines in smbXsrv_client_global_init()
via 7b4ab077c8d smbd: Do an early TALLOC_FREE in smbXsrv_client_global_init()
via 45200770fe6 smbd: Simplify smbXsrv_open_clear_replay_cache()
via e5596cf4a6a smbd: Simplify smbXsrv_open_purge_replay_cache()
via 647d2c6481c smbd: Simplify an if-condition
via 56814d3ee25 smbd: Some README.Coding in smbXsrv_session
via 1656cb19010 lib: Fix whitespace
via debb5894847 libsmb: Remove unused setup_stat_from_stat_ex()
via fba4e66df51 smbd: Save a few bytes of .text
from d650f884ec1 lib:ldb: Use correct integer types for sizes
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 6bf51860a0071b5834c68b463cbdc31d2c04a4c0
Author: Volker Lendecke <vl at samba.org>
Date: Tue Apr 30 11:43:58 2024 +0200
smbd: Remove unused [push_pull]_file_id_24
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
Autobuild-User(master): Jeremy Allison <jra at samba.org>
Autobuild-Date(master): Tue Apr 30 23:48:21 UTC 2024 on atb-devel-224
commit 5ef6a8a01f43c2d962086ce2bb6c4f34c44e42ae
Author: Volker Lendecke <vl at samba.org>
Date: Tue Apr 30 11:41:50 2024 +0200
smbd: Use struct oplock_break_message for MSG_SMB_KERNEL_BREAK
Signed-off-by: Volker Lendecke <vl at samba.org>
commit 7d860a73ca48819e80fc8690ae8cfb5b628ace0a
Author: Volker Lendecke <vl at samba.org>
Date: Tue Apr 30 10:37:06 2024 +0200
smbd: Remove message_to_share_mode_entry and vice versa
Used only for closing files from rpc srvsvc these days
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 037b9dac21b4aabcc56169b533cbed749e6fee6c
Author: Volker Lendecke <vl at samba.org>
Date: Tue Apr 30 10:35:06 2024 +0200
smbd: Use struct oplock_break_message for MSG_CLOSE_FILE
We only need to transmit the file_id and share_file_id. Next patch
will show why :-)
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit e2201a8dff30666b5f8f9ca340039c3c6acd9bd4
Author: Volker Lendecke <vl at samba.org>
Date: Tue Apr 30 10:31:37 2024 +0200
smbd: Fix a typo
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 8f1cc217a8909d56adc9279adf9e301a95b52716
Author: Volker Lendecke <vl at samba.org>
Date: Mon Apr 29 11:38:18 2024 +0200
smbd: Simplify sending oplock_break_message
This is fixed length of 33 bytes, no need to talloc
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 4fe0808ebedd7812cf7097d4d6c3d697e8cebb68
Author: Volker Lendecke <vl at samba.org>
Date: Sun Apr 28 19:51:25 2024 +0200
lib: Convert push_file_id_16 to take uint8_t instead of char
All callers had a cast from uint8_t to char, avoid those.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit e889d76fad07645b8279d149d1519f0d7feb25e6
Author: Volker Lendecke <vl at samba.org>
Date: Sun Apr 28 19:43:36 2024 +0200
vfs: Convert return_data from char * to uint8_t
Prepares for a small simplification in the next patch
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 6f2aa43a3fe722b93eb68a5bb9ae6d4253a352df
Author: Volker Lendecke <vl at samba.org>
Date: Wed Apr 10 14:45:56 2024 +0200
passdb: Use getline(3) to read our old machine sid
Don't read the whole file.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 30b7cf9b3c0c0968166811313aa48b1eedcad67a
Author: Volker Lendecke <vl at samba.org>
Date: Sun Apr 28 16:29:23 2024 +0200
pylibsmb: Avoid talloc()
dom_sid_string() does an implicit talloc_strdup() which is not
necessary here.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 3f17f1942941d8c4dfc54a8d8ac62c77476194a1
Author: Volker Lendecke <vl at samba.org>
Date: Sun Apr 28 16:24:31 2024 +0200
pylibsmb: clang-format for the calls to Py_BuildValue()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 8ef24d670b7d130f14dc3639c0359cdb5de48fc7
Author: Volker Lendecke <vl at samba.org>
Date: Sun Apr 28 16:21:44 2024 +0200
pylibsmb: Return reparse_tag from directory listing
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit ceea95af632cc1a7bec6c32c7b0daa54bf3d26c0
Author: Volker Lendecke <vl at samba.org>
Date: Sun Apr 28 16:07:44 2024 +0200
libsmb: Slightly simplify py_cli_list()
We don't need an & to take a function pointer
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 5d51be5891478ec5e5cd338404eeeae8d7d2b39c
Author: Volker Lendecke <vl at samba.org>
Date: Fri Feb 9 18:23:35 2024 +0100
smbd: Fix a copy&paste error in smbXsrv_client_remove()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit c2b80caf5edc3b08968704391c66252c73713435
Author: Volker Lendecke <vl at samba.org>
Date: Fri Feb 9 18:21:14 2024 +0100
smbd: Use direct struct initialization in smbXsrv_client
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 60b724a7e59da03ec0d4d211c8330bf00b83c9cc
Author: Volker Lendecke <vl at samba.org>
Date: Fri Feb 9 18:16:26 2024 +0100
smbd: Save a few lines in smbXsrv_client_global_init()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 7b4ab077c8d5372ba187efd3a6a540e15cf6c63a
Author: Volker Lendecke <vl at samba.org>
Date: Fri Feb 9 18:16:09 2024 +0100
smbd: Do an early TALLOC_FREE in smbXsrv_client_global_init()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 45200770fe6862b609adab3f620ef892bb9c27ff
Author: Volker Lendecke <vl at samba.org>
Date: Fri Feb 9 13:05:28 2024 +0100
smbd: Simplify smbXsrv_open_clear_replay_cache()
GUID_buf_string() is designed to never fail
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit e5596cf4a6aa1c1025867fcad75485c87d8efd7f
Author: Volker Lendecke <vl at samba.org>
Date: Fri Feb 9 13:02:25 2024 +0100
smbd: Simplify smbXsrv_open_purge_replay_cache()
GUID_buf_string is supposed to never fail except if the guid passed in
is NULL. Our only current caller already checks
that. dbwrap_purge_bystring() could actually fail, so put the result
into a variable for the debugger.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 647d2c6481c07da70a87116089a4a42b72adbdb1
Author: Volker Lendecke <vl at samba.org>
Date: Fri Feb 9 12:37:53 2024 +0100
smbd: Simplify an if-condition
(state->current_sid == NULL) is true if and only if we could not
assign state->current_sid because num_sids was too small. Make that
more explicit.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 56814d3ee2500a36a8d1c3db9e2524dfa91fc229
Author: Volker Lendecke <vl at samba.org>
Date: Fri Feb 9 12:34:06 2024 +0100
smbd: Some README.Coding in smbXsrv_session
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit 1656cb190102a36f77bab7a8b8184f35a77aa442
Author: Volker Lendecke <vl at samba.org>
Date: Wed Apr 17 13:45:08 2024 +0200
lib: Fix whitespace
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit debb5894847751d81b01ec3e16414bf86fa5dd17
Author: Volker Lendecke <vl at samba.org>
Date: Thu Jan 18 10:30:21 2024 +0100
libsmb: Remove unused setup_stat_from_stat_ex()
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
commit fba4e66df51e15b1dd8fcf60a18a399e05a7c746
Author: Volker Lendecke <vl at samba.org>
Date: Wed Apr 17 11:24:25 2024 +0200
smbd: Save a few bytes of .text
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
-----------------------------------------------------------------------
Summary of changes:
lib/util/data_blob.c | 14 +--
source3/include/libsmb_internal.h | 3 -
source3/include/smb.h | 41 ---------
source3/lib/file_id.c | 29 +------
source3/lib/file_id.h | 4 +-
source3/lib/xattr_tdb.c | 4 +-
source3/libsmb/libsmb_stat.c | 42 ---------
source3/libsmb/pylibsmb.c | 62 ++++++++------
source3/modules/vfs_acl_tdb.c | 6 +-
source3/modules/vfs_default.c | 8 +-
source3/modules/vfs_streams_depot.c | 2 +-
source3/passdb/machine_sid.c | 26 +++---
source3/rpc_server/srvsvc/srv_srvsvc_nt.c | 32 +++++--
source3/smbd/close.c | 26 +++---
source3/smbd/open.c | 15 ++--
source3/smbd/proto.h | 5 --
source3/smbd/smb2_negprot.c | 2 +-
source3/smbd/smb2_oplock.c | 138 +++++++++---------------------
source3/smbd/smbXsrv_client.c | 17 ++--
source3/smbd/smbXsrv_open.c | 23 ++---
source3/smbd/smbXsrv_session.c | 17 ++--
21 files changed, 179 insertions(+), 337 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/util/data_blob.c b/lib/util/data_blob.c
index 15582000205..b5b78bc7a8a 100644
--- a/lib/util/data_blob.c
+++ b/lib/util/data_blob.c
@@ -1,19 +1,19 @@
-/*
+/*
Unix SMB/CIFS implementation.
Easy management of byte-length data
Copyright (C) Andrew Tridgell 2001
Copyright (C) Andrew Bartlett 2001
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
-
+
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
-
+
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@@ -67,7 +67,7 @@ _PUBLIC_ DATA_BLOB data_blob_talloc_named(TALLOC_CTX *mem_ctx, const void *p, si
}
/**
- construct a zero data blob, using supplied TALLOC_CTX.
+ construct a zero data blob, using supplied TALLOC_CTX.
use this sparingly as it initialises data - better to initialise
yourself if you want specific data in the blob
**/
@@ -220,7 +220,7 @@ _PUBLIC_ DATA_BLOB data_blob_string_const_null(const char *str)
}
/**
- * Create a new data blob from const data
+ * Create a new data blob from const data
*/
_PUBLIC_ DATA_BLOB data_blob_const(const void *p, size_t length)
@@ -267,7 +267,7 @@ _PUBLIC_ bool data_blob_append(TALLOC_CTX *mem_ctx, DATA_BLOB *blob,
if ((const uint8_t *)p + length < (const uint8_t *)p) {
return false;
}
-
+
if (!data_blob_realloc(mem_ctx, blob, new_len)) {
return false;
}
diff --git a/source3/include/libsmb_internal.h b/source3/include/libsmb_internal.h
index 113111532e0..df238886036 100644
--- a/source3/include/libsmb_internal.h
+++ b/source3/include/libsmb_internal.h
@@ -530,9 +530,6 @@ void setup_stat(struct stat *st,
struct timespec access_time_ts,
struct timespec change_time_ts,
struct timespec write_time_ts);
-void setup_stat_from_stat_ex(const struct stat_ex *stex,
- const char *fname,
- struct stat *st);
int
SMBC_stat_ctx(SMBCCTX *context,
diff --git a/source3/include/smb.h b/source3/include/smb.h
index aa91e3afcb9..e47ccd66133 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -172,47 +172,6 @@ struct interface {
#include "librpc/gen_ndr/server_id.h"
-/* oplock break message definition - linearization of share_mode_entry.
-
-Offset Data length.
-0 struct server_id pid 4
-4 uint16_t op_mid 8
-12 uint16_t op_type 2
-14 uint32_t access_mask 4
-18 uint32_t share_access 4
-22 uint32_t private_options 4
-26 uint32_t time sec 4
-30 uint32_t time usec 4
-34 uint64_t dev 8 bytes
-42 uint64_t inode 8 bytes
-50 uint64_t extid 8 bytes
-58 unsigned long file_id 4 bytes
-62 uint32_t uid 4 bytes
-66 uint16_t flags 2 bytes
-68 uint32_t name_hash 4 bytes
-72
-
-*/
-
-#define OP_BREAK_MSG_PID_OFFSET 0
-#define OP_BREAK_MSG_MID_OFFSET 4
-#define OP_BREAK_MSG_OP_TYPE_OFFSET 12
-#define OP_BREAK_MSG_ACCESS_MASK_OFFSET 14
-#define OP_BREAK_MSG_SHARE_ACCESS_OFFSET 18
-#define OP_BREAK_MSG_PRIV_OFFSET 22
-#define OP_BREAK_MSG_TIME_SEC_OFFSET 26
-#define OP_BREAK_MSG_TIME_USEC_OFFSET 30
-#define OP_BREAK_MSG_DEV_OFFSET 34
-#define OP_BREAK_MSG_INO_OFFSET 42
-#define OP_BREAK_MSG_EXTID_OFFSET 50
-#define OP_BREAK_MSG_FILE_ID_OFFSET 58
-#define OP_BREAK_MSG_UID_OFFSET 62
-#define OP_BREAK_MSG_FLAGS_OFFSET 66
-#define OP_BREAK_MSG_NAME_HASH_OFFSET 68
-
-#define OP_BREAK_MSG_VNN_OFFSET 72
-#define MSG_SMB_SHARE_MODE_ENTRY_SIZE 76
-
#define NT_HASH_LEN 16
#define LM_HASH_LEN 16
diff --git a/source3/lib/file_id.c b/source3/lib/file_id.c
index 545437afefa..6ad8751b065 100644
--- a/source3/lib/file_id.c
+++ b/source3/lib/file_id.c
@@ -46,37 +46,10 @@ char *file_id_str_buf(struct file_id fid, struct file_id_buf *dst)
push a 16 byte version of a file id into a buffer. This ignores the extid
and is needed when dev/inodes are stored in persistent storage (tdbs).
*/
-void push_file_id_16(char *buf, const struct file_id *id)
+void push_file_id_16(uint8_t *buf, const struct file_id *id)
{
SIVAL(buf, 0, id->devid&0xFFFFFFFF);
SIVAL(buf, 4, id->devid>>32);
SIVAL(buf, 8, id->inode&0xFFFFFFFF);
SIVAL(buf, 12, id->inode>>32);
}
-
-/*
- push a 24 byte version of a file id into a buffer
- */
-void push_file_id_24(char *buf, const struct file_id *id)
-{
- SIVAL(buf, 0, id->devid&0xFFFFFFFF);
- SIVAL(buf, 4, id->devid>>32);
- SIVAL(buf, 8, id->inode&0xFFFFFFFF);
- SIVAL(buf, 12, id->inode>>32);
- SIVAL(buf, 16, id->extid&0xFFFFFFFF);
- SIVAL(buf, 20, id->extid>>32);
-}
-
-/*
- pull a 24 byte version of a file id from a buffer
- */
-void pull_file_id_24(const char *buf, struct file_id *id)
-{
- ZERO_STRUCTP(id);
- id->devid = IVAL(buf, 0);
- id->devid |= ((uint64_t)IVAL(buf,4))<<32;
- id->inode = IVAL(buf, 8);
- id->inode |= ((uint64_t)IVAL(buf,12))<<32;
- id->extid = IVAL(buf, 16);
- id->extid |= ((uint64_t)IVAL(buf,20))<<32;
-}
diff --git a/source3/lib/file_id.h b/source3/lib/file_id.h
index 255b1ddc5c5..82bae6157fe 100644
--- a/source3/lib/file_id.h
+++ b/source3/lib/file_id.h
@@ -37,8 +37,6 @@ char *file_id_str_buf(struct file_id fid, struct file_id_buf *dst);
/*
an allocated string for a file_id structure
*/
-void push_file_id_16(char *buf, const struct file_id *id);
-void push_file_id_24(char *buf, const struct file_id *id);
-void pull_file_id_24(const char *buf, struct file_id *id);
+void push_file_id_16(uint8_t *buf, const struct file_id *id);
#endif
diff --git a/source3/lib/xattr_tdb.c b/source3/lib/xattr_tdb.c
index 564cdd80965..8c1cc7398c1 100644
--- a/source3/lib/xattr_tdb.c
+++ b/source3/lib/xattr_tdb.c
@@ -109,7 +109,7 @@ static NTSTATUS xattr_tdb_load_attrs(TALLOC_CTX *mem_ctx,
TDB_DATA data;
/* For backwards compatibility only store the dev/inode. */
- push_file_id_16((char *)id_buf, id);
+ push_file_id_16(id_buf, id);
status = dbwrap_fetch(db_ctx, mem_ctx,
make_tdb_data(id_buf, sizeof(id_buf)),
@@ -137,7 +137,7 @@ static struct db_record *xattr_tdb_lock_attrs(TALLOC_CTX *mem_ctx,
uint8_t id_buf[16];
/* For backwards compatibility only store the dev/inode. */
- push_file_id_16((char *)id_buf, id);
+ push_file_id_16(id_buf, id);
return dbwrap_fetch_locked(db_ctx, mem_ctx,
make_tdb_data(id_buf, sizeof(id_buf)));
}
diff --git a/source3/libsmb/libsmb_stat.c b/source3/libsmb/libsmb_stat.c
index ae18f594647..2c5eddbffde 100644
--- a/source3/libsmb/libsmb_stat.c
+++ b/source3/libsmb/libsmb_stat.c
@@ -114,48 +114,6 @@ void setup_stat(struct stat *st,
set_mtimensec(st, write_time_ts.tv_nsec);
}
-void setup_stat_from_stat_ex(const struct stat_ex *stex,
- const char *fname,
- struct stat *st)
-{
- st->st_atime = stex->st_ex_atime.tv_sec;
- set_atimensec(st, stex->st_ex_atime.tv_nsec);
-
- st->st_ctime = stex->st_ex_ctime.tv_sec;
- set_ctimensec(st, stex->st_ex_ctime.tv_nsec);
-
- st->st_mtime = stex->st_ex_mtime.tv_sec;
- set_mtimensec(st, stex->st_ex_mtime.tv_nsec);
-
- st->st_mode = stex->st_ex_mode;
- st->st_size = stex->st_ex_size;
-#ifdef HAVE_STAT_ST_BLKSIZE
- st->st_blksize = 512;
-#endif
-#ifdef HAVE_STAT_ST_BLOCKS
- st->st_blocks = (st->st_size + 511) / 512;
-#endif
-#ifdef HAVE_STRUCT_STAT_ST_RDEV
- st->st_rdev = 0;
-#endif
- st->st_uid = stex->st_ex_uid;
- st->st_gid = stex->st_ex_gid;
-
- st->st_nlink = stex->st_ex_nlink;
-
- if (stex->st_ex_ino == 0) {
- st->st_ino = 0;
- if (fname != NULL) {
- st->st_ino = generate_inode(fname);
- }
- } else {
- st->st_ino = stex->st_ex_ino;
- }
-
- st->st_dev = stex->st_ex_dev;
-
-}
-
/*
* Routine to stat a file given a name
*/
diff --git a/source3/libsmb/pylibsmb.c b/source3/libsmb/pylibsmb.c
index aa87fa0c1a2..767187913f6 100644
--- a/source3/libsmb/pylibsmb.c
+++ b/source3/libsmb/pylibsmb.c
@@ -1886,6 +1886,7 @@ static NTSTATUS list_posix_helper(struct file_info *finfo,
{
PyObject *result = (PyObject *)state;
PyObject *file = NULL;
+ struct dom_sid_buf owner_buf, group_buf;
int ret;
/*
@@ -1895,13 +1896,15 @@ static NTSTATUS list_posix_helper(struct file_info *finfo,
"s:K,s:K,"
"s:l,s:l,s:l,s:l,"
"s:i,s:K,s:i,s:i,s:I,"
- "s:s,s:s}",
- "name", finfo->name,
- "attrib", finfo->attr,
-
- "size", finfo->size,
- "allocaction_size", finfo->allocated_size,
-
+ "s:s,s:s,s:k}",
+ "name",
+ finfo->name,
+ "attrib",
+ finfo->attr,
+ "size",
+ finfo->size,
+ "allocaction_size",
+ finfo->allocated_size,
"btime",
convert_timespec_to_time_t(finfo->btime_ts),
"atime",
@@ -1910,17 +1913,22 @@ static NTSTATUS list_posix_helper(struct file_info *finfo,
convert_timespec_to_time_t(finfo->mtime_ts),
"ctime",
convert_timespec_to_time_t(finfo->ctime_ts),
-
- "perms", finfo->st_ex_mode,
- "ino", finfo->ino,
- "dev", finfo->st_ex_dev,
- "nlink", finfo->st_ex_nlink,
- "reparse_tag", finfo->reparse_tag,
-
+ "perms",
+ finfo->st_ex_mode,
+ "ino",
+ finfo->ino,
+ "dev",
+ finfo->st_ex_dev,
+ "nlink",
+ finfo->st_ex_nlink,
+ "reparse_tag",
+ finfo->reparse_tag,
"owner_sid",
- dom_sid_string(finfo, &finfo->owner_sid),
+ dom_sid_str_buf(&finfo->owner_sid, &owner_buf),
"group_sid",
- dom_sid_string(finfo, &finfo->group_sid));
+ dom_sid_str_buf(&finfo->group_sid, &group_buf),
+ "reparse_tag",
+ (unsigned long)finfo->reparse_tag);
if (file == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -1954,13 +1962,19 @@ static NTSTATUS list_helper(struct file_info *finfo,
* Build a dictionary representing the file info.
* Note: Windows does not always return short_name (so it may be None)
*/
- file = Py_BuildValue("{s:s,s:i,s:s,s:O,s:l}",
- "name", finfo->name,
- "attrib", (int)finfo->attr,
- "short_name", finfo->short_name,
- "size", size,
+ file = Py_BuildValue("{s:s,s:i,s:s,s:O,s:l,s:k}",
+ "name",
+ finfo->name,
+ "attrib",
+ (int)finfo->attr,
+ "short_name",
+ finfo->short_name,
+ "size",
+ size,
"mtime",
- convert_timespec_to_time_t(finfo->mtime_ts));
+ convert_timespec_to_time_t(finfo->mtime_ts),
+ "reparse_tag",
+ (unsigned long)finfo->reparse_tag);
Py_CLEAR(size);
@@ -2077,7 +2091,7 @@ static PyObject *py_cli_list(struct py_cli_state *self,
const char *kwlist[] = { "directory", "mask", "attribs",
"info_level", NULL };
NTSTATUS (*callback_fn)(struct file_info *, const char *, void *) =
- &list_helper;
+ list_helper;
if (!ParseTupleAndKeywords(args, kwds, "z|sII:list", kwlist,
&base_dir, &user_mask, &attribute,
@@ -2099,7 +2113,7 @@ static PyObject *py_cli_list(struct py_cli_state *self,
}
if (info_level == SMB2_FIND_POSIX_INFORMATION) {
- callback_fn = &list_posix_helper;
+ callback_fn = list_posix_helper;
}
status = do_listing(self, base_dir, user_mask, attribute,
info_level, callback_fn, result);
diff --git a/source3/modules/vfs_acl_tdb.c b/source3/modules/vfs_acl_tdb.c
index bccb1ab0bec..5ecba7ba757 100644
--- a/source3/modules/vfs_acl_tdb.c
+++ b/source3/modules/vfs_acl_tdb.c
@@ -102,7 +102,7 @@ static NTSTATUS acl_tdb_delete(vfs_handle_struct *handle,
uint8_t id_buf[16];
/* For backwards compatibility only store the dev/inode. */
- push_file_id_16((char *)id_buf, &id);
+ push_file_id_16(id_buf, &id);
status = dbwrap_delete(db, make_tdb_data(id_buf, sizeof(id_buf)));
return status;
@@ -131,7 +131,7 @@ static NTSTATUS fget_acl_blob(TALLOC_CTX *ctx,
id = vfs_file_id_from_sbuf(handle->conn, &fsp->fsp_name->st);
/* For backwards compatibility only store the dev/inode. */
- push_file_id_16((char *)id_buf, &id);
+ push_file_id_16(id_buf, &id);
status = dbwrap_fetch(db,
ctx,
@@ -179,7 +179,7 @@ static NTSTATUS store_acl_blob_fsp(vfs_handle_struct *handle,
id = vfs_file_id_from_sbuf(handle->conn, &fsp->fsp_name->st);
/* For backwards compatibility only store the dev/inode. */
- push_file_id_16((char *)id_buf, &id);
+ push_file_id_16(id_buf, &id);
status = dbwrap_store(
db, make_tdb_data(id_buf, sizeof(id_buf)), data, 0);
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index 62ad5063af0..379802fc547 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -1478,7 +1478,7 @@ static NTSTATUS vfswrap_fsctl(struct vfs_handle_struct *handle,
case FSCTL_CREATE_OR_GET_OBJECT_ID:
{
unsigned char objid[16];
- char *return_data = NULL;
+ uint8_t *return_data = NULL;
/* This should return the object-id on this file.
* I think I'll make this be the inode+dev. JRA.
@@ -1490,7 +1490,7 @@ static NTSTATUS vfswrap_fsctl(struct vfs_handle_struct *handle,
*out_len = MIN(max_out_len, 64);
/* Hmmm, will this cause problems if less data asked for? */
- return_data = talloc_array(ctx, char, 64);
+ return_data = talloc_array(ctx, uint8_t, 64);
if (return_data == NULL) {
return NT_STATUS_NO_MEMORY;
}
@@ -1498,9 +1498,9 @@ static NTSTATUS vfswrap_fsctl(struct vfs_handle_struct *handle,
/* For backwards compatibility only store the dev/inode. */
push_file_id_16(return_data, &fsp->file_id);
memcpy(return_data+16,create_volume_objectid(fsp->conn,objid),16);
- push_file_id_16(return_data+32, &fsp->file_id);
+ push_file_id_16(return_data + 32, &fsp->file_id);
memset(return_data+48, 0, 16);
- *out_data = return_data;
+ *_out_data = return_data;
return NT_STATUS_OK;
}
diff --git a/source3/modules/vfs_streams_depot.c b/source3/modules/vfs_streams_depot.c
index f9701cc66ed..1221b2c2be2 100644
--- a/source3/modules/vfs_streams_depot.c
+++ b/source3/modules/vfs_streams_depot.c
@@ -215,7 +215,7 @@ static char *stream_dir(vfs_handle_struct *handle,
id = SMB_VFS_FILE_ID_CREATE(handle->conn, &base_sbuf_tmp);
- push_file_id_16((char *)id_buf, &id);
+ push_file_id_16(id_buf, &id);
hash = hash_fn(data_blob_const(id_buf, sizeof(id_buf)));
diff --git a/source3/passdb/machine_sid.c b/source3/passdb/machine_sid.c
index 16ef6ce266c..c6b8ed403ea 100644
--- a/source3/passdb/machine_sid.c
+++ b/source3/passdb/machine_sid.c
@@ -21,7 +21,6 @@
*/
#include "includes.h"
-#include "lib/util/util_file.h"
#include "passdb/machine_sid.h"
#include "secrets.h"
#include "dbwrap/dbwrap.h"
@@ -42,19 +41,24 @@ static struct dom_sid *global_sam_sid=NULL;
static bool read_sid_from_file(const char *fname, struct dom_sid *sid)
{
- char **lines;
- int numlines;
- bool ret;
-
- lines = file_lines_load(fname, &numlines,0, NULL);
+ char *line = NULL;
+ size_t n;
+ ssize_t len;
+ bool ret = false;
+ FILE *f = NULL;
+
+ f = fopen(fname, "r");
+ if (f == NULL) {
+ return false;
+ }
- if (!lines || numlines < 1) {
- TALLOC_FREE(lines);
- return False;
+ len = getline(&line, &n, f);
+ if (len >= 0) {
+ ret = string_to_sid(sid, line);
+ SAFE_FREE(line);
}
- ret = string_to_sid(sid, lines[0]);
- TALLOC_FREE(lines);
+ fclose(f);
return ret;
}
diff --git a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c
index 29d224c427d..1129576f751 100644
--- a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c
+++ b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c
@@ -30,6 +30,7 @@
#include "librpc/rpc/dcesrv_core.h"
#include "librpc/gen_ndr/ndr_srvsvc.h"
#include "librpc/gen_ndr/ndr_srvsvc_scompat.h"
+#include "librpc/gen_ndr/ndr_open_files.h"
#include "../libcli/security/security.h"
#include "../librpc/gen_ndr/ndr_security.h"
--
Samba Shared Repository
More information about the samba-cvs
mailing list