[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