The branch, master has been updated
       via  50ca5af9f38b46fb3c7dea5b50997d3bd1c7e46f (commit)
       via  7967d8c779935df17363dd1cd3bea25d6e1b8479 (commit)
       via  53394980ad7dc09af4412a6c4ee75241798b0e7c (commit)
       via  3cd8c121dc27739a9a70bf47e32dcd19e35ddf14 (commit)
       via  57de60a83f3f88566d356547eb20a6f0569f76ec (commit)
       via  dba6624dca024d144b0adb1016d17d176d38b735 (commit)
       via  19ce90b90e0024aa1d2453fcdc52828f6bee2f33 (commit)
      from  16f072809cf0e8542b776988d3fe1a0db055a74b (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 50ca5af9f38b46fb3c7dea5b50997d3bd1c7e46f
Author: Volker Lendecke <[email protected]>
Date:   Sat Jan 31 17:58:30 2009 +0100

    Convert api_RNetUserEnum to use the srv_samr_nt.c directly
    
    This is a sample for other accesses to pdb to go via samr. The goal is to
    access passdb only via srv_samr_nt.c. If that is done, then we can easily 
swap
    in another samr implementation like for example samba4's via a unix domain
    socket.

commit 7967d8c779935df17363dd1cd3bea25d6e1b8479
Author: Volker Lendecke <[email protected]>
Date:   Sun Feb 1 13:01:54 2009 +0100

    Move rpc_pipe_open_internal to srv_pipe_hnd.c
    
    This is a smbd-only function

commit 53394980ad7dc09af4412a6c4ee75241798b0e7c
Author: Volker Lendecke <[email protected]>
Date:   Sun Feb 1 12:03:31 2009 +0100

    Replace pipe names in pipes_struct by ndr_syntax_id
    
    This was mainly used for debugging output

commit 3cd8c121dc27739a9a70bf47e32dcd19e35ddf14
Author: Volker Lendecke <[email protected]>
Date:   Sun Feb 1 00:31:16 2009 +0100

    Fix some type-punned warnings

commit 57de60a83f3f88566d356547eb20a6f0569f76ec
Author: Volker Lendecke <[email protected]>
Date:   Sun Feb 1 00:30:04 2009 +0100

    cli_get_pipe_name_from_interface does not really need a talloc_ctx

commit dba6624dca024d144b0adb1016d17d176d38b735
Author: Volker Lendecke <[email protected]>
Date:   Sat Jan 31 16:57:46 2009 +0100

    Fix nonempty blank lines

commit 19ce90b90e0024aa1d2453fcdc52828f6bee2f33
Author: Volker Lendecke <[email protected]>
Date:   Sat Jan 31 16:47:15 2009 +0100

    Just for fun: Move some bytes from bss to text

-----------------------------------------------------------------------

Summary of changes:
 source3/include/ntdomain.h            |    3 +-
 source3/include/proto.h               |    8 +-
 source3/lib/netapi/cm.c               |    2 +-
 source3/passdb/passdb.c               |  121 +++++++++---------
 source3/rpc_client/cli_pipe.c         |   67 +++-------
 source3/rpc_client/rpc_transport_np.c |   13 +--
 source3/rpc_server/srv_lsa_hnd.c      |   22 ++--
 source3/rpc_server/srv_pipe.c         |   81 ++++++++-----
 source3/rpc_server/srv_pipe_hnd.c     |  115 +++++++++++++-----
 source3/rpcclient/rpcclient.c         |    9 +-
 source3/smbd/lanman.c                 |  218 ++++++++++++++++++++-------------
 source3/smbd/mangle_hash.c            |    2 +-
 source3/smbd/mangle_hash2.c           |    2 +-
 source3/utils/net_rpc.c               |    9 +-
 14 files changed, 381 insertions(+), 291 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/ntdomain.h b/source3/include/ntdomain.h
index 3f50155..2d6a358 100644
--- a/source3/include/ntdomain.h
+++ b/source3/include/ntdomain.h
@@ -214,8 +214,7 @@ typedef struct pipes_struct {
 
        struct auth_serversupplied_info *server_info;
 
-       fstring name;
-       fstring pipe_srv_name;
+       struct ndr_syntax_id syntax;
 
        /* linked list of rpc dispatch tables associated 
           with the open rpc contexts */
diff --git a/source3/include/proto.h b/source3/include/proto.h
index fd55669..c97adaa 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5852,8 +5852,7 @@ bool prs_data_blob(prs_struct *prs, DATA_BLOB *blob, 
TALLOC_CTX *mem_ctx);
 
 /* The following definitions come from rpc_parse/parse_rpc.c  */
 
-const char *cli_get_pipe_name_from_iface(TALLOC_CTX *mem_ctx,
-                                        const struct ndr_syntax_id *interface);
+const char *get_pipe_name_from_iface(const struct ndr_syntax_id *interface);
 void init_rpc_hdr(RPC_HDR *hdr, enum RPC_PKT_TYPE pkt_type, uint8 flags,
                                uint32 call_id, int data_len, int auth_len);
 bool smb_io_rpc_hdr(const char *desc,  RPC_HDR *rpc, prs_struct *ps, int 
depth);
@@ -6272,7 +6271,8 @@ NTSTATUS _eventlog_read_eventlog( pipes_struct * p,
 
 /* The following definitions come from rpc_server/srv_lsa_hnd.c  */
 
-bool init_pipe_handle_list(pipes_struct *p, const char *pipe_name);
+bool init_pipe_handle_list(pipes_struct *p,
+                          const struct ndr_syntax_id *syntax);
 bool create_policy_hnd(pipes_struct *p, POLICY_HND *hnd, void *data_ptr);
 bool find_policy_by_hnd(pipes_struct *p, POLICY_HND *hnd, void **data_p);
 bool close_policy_hnd(pipes_struct *p, POLICY_HND *hnd);
@@ -6295,7 +6295,7 @@ NTSTATUS rpc_srv_register(int version, const char *clnt,
                          const char *srv,
                          const struct ndr_interface_table *iface,
                          const struct api_struct *cmds, int size);
-bool is_known_pipename(const char *cli_filename);
+bool is_known_pipename(const char *cli_filename, struct ndr_syntax_id *syntax);
 bool api_pipe_bind_req(pipes_struct *p, prs_struct *rpc_in_p);
 bool api_pipe_alter_context(pipes_struct *p, prs_struct *rpc_in_p);
 bool api_pipe_ntlmssp_auth_process(pipes_struct *p, prs_struct *rpc_in,
diff --git a/source3/lib/netapi/cm.c b/source3/lib/netapi/cm.c
index d5ef09d..233255f 100644
--- a/source3/lib/netapi/cm.c
+++ b/source3/lib/netapi/cm.c
@@ -184,7 +184,7 @@ WERROR libnetapi_open_pipe(struct libnetapi_ctx *ctx,
        status = pipe_cm_open(ctx, cli, interface, &result);
        if (!NT_STATUS_IS_OK(status)) {
                libnetapi_set_error_string(ctx, "failed to open PIPE %s: %s",
-                       cli_get_pipe_name_from_iface(debug_ctx(), interface),
+                       get_pipe_name_from_iface(interface),
                        get_friendly_nt_error_msg(status));
                return WERR_DEST_NOT_FOUND;
        }
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c
index e677d42..d26a667 100644
--- a/source3/passdb/passdb.c
+++ b/source3/passdb/passdb.c
@@ -7,17 +7,17 @@
    Copyright (C) Andrew Bartlett               2001-2002
    Copyright (C) Simo Sorce                    2003
    Copyright (C) Volker Lendecke               2006
-      
+
    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,16 +67,16 @@ static int samu_destroy(struct samu *user)
 struct samu *samu_new( TALLOC_CTX *ctx )
 {
        struct samu *user;
-       
+
        if ( !(user = TALLOC_ZERO_P( ctx, struct samu )) ) {
                DEBUG(0,("samuser_new: Talloc failed!\n"));
                return NULL;
        }
-       
+
        talloc_set_destructor( user, samu_destroy );
-       
+
        /* no initial methods */
-       
+
        user->methods = NULL;
 
         /* Don't change these timestamp settings without a good reason.
@@ -98,7 +98,7 @@ struct samu *samu_new( TALLOC_CTX *ctx )
 
        /* Some parts of samba strlen their pdb_get...() returns, 
           so this keeps the interface unchanged for now. */
-          
+
        user->username = "";
        user->domain = "";
        user->nt_username = "";
@@ -118,8 +118,7 @@ struct samu *samu_new( TALLOC_CTX *ctx )
           asks for a filtered list of users. */
 
        user->acct_ctrl = ACB_NORMAL;
-       
-       
+
        return user;
 }
 
@@ -140,7 +139,7 @@ static NTSTATUS samu_set_unix_internal(struct samu *user, 
const struct passwd *p
        }
 
        /* Basic properties based upon the Unix account information */
-       
+
        pdb_set_username(user, pwd->pw_name, PDB_SET);
        pdb_set_fullname(user, pwd->pw_gecos, PDB_SET);
        pdb_set_domain (user, get_global_sam_name(), PDB_DEFAULT);
@@ -149,29 +148,29 @@ static NTSTATUS samu_set_unix_internal(struct samu *user, 
const struct passwd *p
           will be rejected by other parts of the Samba code. 
           Rely on pdb_get_group_sid() to "Do The Right Thing" (TM)  
           --jerry */
-          
+
        gid_to_sid(&group_sid, pwd->pw_gid);
        pdb_set_group_sid(user, &group_sid, PDB_SET);
 #endif
-       
+
        /* save the password structure for later use */
-       
+
        user->unix_pw = tcopy_passwd( user, pwd );
 
        /* Special case for the guest account which must have a RID of 501 */
-       
+
        if ( strequal( pwd->pw_name, guest_account ) ) {
                if ( !pdb_set_user_sid_from_rid(user, DOMAIN_USER_RID_GUEST, 
PDB_DEFAULT)) {
                        return NT_STATUS_NO_SUCH_USER;
                }
                return NT_STATUS_OK;
        }
-       
+
        /* Non-guest accounts...Check for a workstation or user account */
 
        if (pwd->pw_name[strlen(pwd->pw_name)-1] == '$') {
                /* workstation */
-               
+
                if (!pdb_set_acct_ctrl(user, ACB_WSTRUST, PDB_DEFAULT)) {
                        DEBUG(1, ("Failed to set 'workstation account' flags 
for user %s.\n", 
                                pwd->pw_name));
@@ -180,15 +179,15 @@ static NTSTATUS samu_set_unix_internal(struct samu *user, 
const struct passwd *p
        } 
        else {
                /* user */
-               
+
                if (!pdb_set_acct_ctrl(user, ACB_NORMAL, PDB_DEFAULT)) {
                        DEBUG(1, ("Failed to set 'normal account' flags for 
user %s.\n", 
                                pwd->pw_name));
                        return NT_STATUS_INVALID_ACCOUNT_NAME;
                }
-               
+
                /* set some basic attributes */
-       
+
                pdb_set_profile_path(user, talloc_sub_specified(user, 
                        lp_logon_path(), pwd->pw_name, domain, pwd->pw_uid, 
pwd->pw_gid), 
                        PDB_DEFAULT);           
@@ -202,7 +201,7 @@ static NTSTATUS samu_set_unix_internal(struct samu *user, 
const struct passwd *p
                        lp_logon_script(), pwd->pw_name, domain, pwd->pw_uid, 
pwd->pw_gid), 
                        PDB_DEFAULT);
        }
-       
+
        /* Now deal with the user SID.  If we have a backend that can generate 
           RIDs, then do so.  But sometimes the caller just wanted a structure 
           initialized and will fill in these fields later (such as from a 
@@ -211,7 +210,7 @@ static NTSTATUS samu_set_unix_internal(struct samu *user, 
const struct passwd *p
        if ( create && !pdb_rid_algorithm() ) {
                uint32 user_rid;
                DOM_SID user_sid;
-               
+
                if ( !pdb_new_rid( &user_rid ) ) {
                        DEBUG(3, ("Could not allocate a new RID\n"));
                        return NT_STATUS_ACCESS_DENIED;
@@ -224,18 +223,18 @@ static NTSTATUS samu_set_unix_internal(struct samu *user, 
const struct passwd *p
                        DEBUG(3, ("pdb_set_user_sid failed\n"));
                        return NT_STATUS_INTERNAL_ERROR;
                }
-               
+
                return NT_STATUS_OK;
        }
 
        /* generate a SID for the user with the RID algorithm */
-       
+
        urid = algorithmic_pdb_uid_to_user_rid( user->unix_pw->pw_uid );
-               
+
        if ( !pdb_set_user_sid_from_rid( user, urid, PDB_SET) ) {
                return NT_STATUS_INTERNAL_ERROR;
        }
-       
+
        return NT_STATUS_OK;
 }
 
@@ -365,10 +364,10 @@ bool pdb_gethexpwd(const char *p, unsigned char *pwd)
        unsigned char   lonybble, hinybble;
        const char      *hexchars = "0123456789ABCDEF";
        char           *p1, *p2;
-       
+
        if (!p)
                return false;
-       
+
        for (i = 0; i < 32; i += 2) {
                hinybble = toupper_ascii(p[i]);
                lonybble = toupper_ascii(p[i + 1]);
@@ -554,16 +553,16 @@ bool lookup_global_sam_name(const char *name, int flags, 
uint32_t *rid,
 {
        GROUP_MAP map;
        bool ret;
-       
+
        /* Windows treats "MACHINE\None" as a special name for 
           rid 513 on non-DCs.  You cannot create a user or group
           name "None" on Windows.  You will get an error that 
           the group already exists. */
-          
+
        if ( strequal( name, "None" ) ) {
                *rid = DOMAIN_GROUP_RID_USERS;
                *type = SID_NAME_DOM_GRP;
-               
+
                return True;
        }
 
@@ -578,7 +577,7 @@ bool lookup_global_sam_name(const char *name, int flags, 
uint32_t *rid,
                if ( !(sam_account = samu_new( NULL )) ) {
                        return False;
                }
-       
+
                become_root();
                ret =  pdb_getsampwnam(sam_account, name);
                unbecome_root();
@@ -586,7 +585,7 @@ bool lookup_global_sam_name(const char *name, int flags, 
uint32_t *rid,
                if (ret) {
                        sid_copy(&user_sid, pdb_get_user_sid(sam_account));
                }
-               
+
                TALLOC_FREE(sam_account);
 
                if (ret) {
@@ -654,7 +653,7 @@ NTSTATUS local_password_change(const char *user_name,
        if(!pdb_getsampwnam(sam_pass, user_name)) {
                unbecome_root();
                TALLOC_FREE(sam_pass);
-               
+
                if ((local_flags & LOCAL_ADD_USER) || (local_flags & 
LOCAL_DELETE_USER)) {
                        int tmp_debug = DEBUGLEVEL;
                        struct passwd *pwd;
@@ -754,7 +753,7 @@ NTSTATUS local_password_change(const char *user_name,
                        return NT_STATUS_UNSUCCESSFUL;
                }
        }
-       
+
        if (local_flags & LOCAL_SET_NO_PASSWORD) {
                if (!pdb_set_acct_ctrl (sam_pass, 
pdb_get_acct_ctrl(sam_pass)|ACB_PWNOTREQ, PDB_CHANGED)) {
                        if (asprintf(pp_err_str, "Failed to set 'no password 
required' flag for user %s.\n", user_name) < 0) {
@@ -789,7 +788,7 @@ NTSTATUS local_password_change(const char *user_name,
                        TALLOC_FREE(sam_pass);
                        return NT_STATUS_UNSUCCESSFUL;
                }
-               
+
                if (!pdb_set_plaintext_passwd (sam_pass, new_passwd)) {
                        if (asprintf(pp_err_str, "Failed to set password for 
user %s.\n", user_name) < 0) {
                                *pp_err_str = NULL;
@@ -893,7 +892,7 @@ static bool init_samu_from_buffer_v0(struct samu *sampass, 
uint8 *buf, uint32 bu
                dir_drive_len, unknown_str_len, munged_dial_len,
                fullname_len, homedir_len, logon_script_len,
                profile_path_len, acct_desc_len, workstations_len;
-               
+
        uint32  user_rid, group_rid, remove_me, hours_len, unknown_6;
        uint16  acct_ctrl, logon_divs;
        uint16  bad_password_count, logon_count;
@@ -902,7 +901,7 @@ static bool init_samu_from_buffer_v0(struct samu *sampass, 
uint8 *buf, uint32 bu
        uint32          len = 0;
        uint32          lm_pw_len, nt_pw_len, hourslen;
        bool ret = True;
-       
+
        if(sampass == NULL || buf == NULL) {
                DEBUG(0, ("init_samu_from_buffer_v0: NULL parameters 
found!\n"));
                return False;
@@ -942,7 +941,7 @@ static bool init_samu_from_buffer_v0(struct samu *sampass, 
uint8 *buf, uint32 bu
                &bad_password_count,                                    /* w */
                &logon_count,                                           /* w */
                &unknown_6);                                            /* d */
-               
+
        if (len == (uint32) -1)  {
                ret = False;
                goto done;
@@ -987,7 +986,7 @@ static bool init_samu_from_buffer_v0(struct samu *sampass, 
uint8 *buf, uint32 bu
                                         lp_logon_script()),
                        PDB_DEFAULT);
        }
-       
+
        if (profile_path) {     
                pdb_set_profile_path(sampass, profile_path, PDB_SET);
        } else {
@@ -1079,7 +1078,7 @@ static bool init_samu_from_buffer_v1(struct samu 
*sampass, uint8 *buf, uint32 bu
                dir_drive_len, unknown_str_len, munged_dial_len,
                fullname_len, homedir_len, logon_script_len,
                profile_path_len, acct_desc_len, workstations_len;
-               
+
        uint32  user_rid, group_rid, remove_me, hours_len, unknown_6;
        uint16  acct_ctrl, logon_divs;
        uint16  bad_password_count, logon_count;
@@ -1088,7 +1087,7 @@ static bool init_samu_from_buffer_v1(struct samu 
*sampass, uint8 *buf, uint32 bu
        uint32          len = 0;
        uint32          lm_pw_len, nt_pw_len, hourslen;
        bool ret = True;
-       
+
        if(sampass == NULL || buf == NULL) {
                DEBUG(0, ("init_samu_from_buffer_v1: NULL parameters 
found!\n"));
                return False;
@@ -1130,7 +1129,7 @@ static bool init_samu_from_buffer_v1(struct samu 
*sampass, uint8 *buf, uint32 bu
                &bad_password_count,                                    /* w */
                &logon_count,                                           /* w */
                &unknown_6);                                            /* d */
-               
+
        if (len == (uint32) -1)  {
                ret = False;
                goto done;
@@ -1178,7 +1177,7 @@ static bool init_samu_from_buffer_v1(struct samu 
*sampass, uint8 *buf, uint32 bu
                                         lp_logon_script()),
                        PDB_DEFAULT);
        }
-       
+
        if (profile_path) {     
                pdb_set_profile_path(sampass, profile_path, PDB_SET);
        } else {
@@ -1268,7 +1267,7 @@ static bool init_samu_from_buffer_v2(struct samu 
*sampass, uint8 *buf, uint32 bu
                dir_drive_len, unknown_str_len, munged_dial_len,
                fullname_len, homedir_len, logon_script_len,
                profile_path_len, acct_desc_len, workstations_len;
-               
+
        uint32  user_rid, group_rid, hours_len, unknown_6;
        uint16  acct_ctrl, logon_divs;
        uint16  bad_password_count, logon_count;
@@ -1280,12 +1279,12 @@ static bool init_samu_from_buffer_v2(struct samu 
*sampass, uint8 *buf, uint32 bu
        bool ret = True;
        fstring tmp_string;
        bool expand_explicit = lp_passdb_expand_explicit();
-       
+
        if(sampass == NULL || buf == NULL) {
                DEBUG(0, ("init_samu_from_buffer_v2: NULL parameters 
found!\n"));
                return False;
        }
-                                                                       
+
 /* SAMU_BUFFER_FORMAT_V2       "dddddddBBBBBBBBBBBBddBBBwwdBwwd" */
 
        /* unpack the buffer into variables */
@@ -1323,7 +1322,7 @@ static bool init_samu_from_buffer_v2(struct samu 
*sampass, uint8 *buf, uint32 bu
                &bad_password_count,                                    /* w */
                &logon_count,                                           /* w */
                &unknown_6);                                            /* d */
-               
+
        if (len == (uint32) -1)  {
                ret = False;
                goto done;
@@ -1376,7 +1375,7 @@ static bool init_samu_from_buffer_v2(struct samu 
*sampass, uint8 *buf, uint32 bu
                                         lp_logon_script()),
                        PDB_DEFAULT);
        }
-       
+
        if (profile_path) {     
                fstrcpy( tmp_string, profile_path );
                if (expand_explicit) {
@@ -1503,7 +1502,7 @@ static bool init_samu_from_buffer_v3(struct samu 
*sampass, uint8 *buf, uint32 bu
                dir_drive_len, unknown_str_len, munged_dial_len,
                fullname_len, homedir_len, logon_script_len,
                profile_path_len, acct_desc_len, workstations_len;
-               
+
        uint32  user_rid, group_rid, hours_len, unknown_6, acct_ctrl;
        uint16  logon_divs;
        uint16  bad_password_count, logon_count;
@@ -1515,12 +1514,12 @@ static bool init_samu_from_buffer_v3(struct samu 
*sampass, uint8 *buf, uint32 bu
        bool ret = True;
        fstring tmp_string;
        bool expand_explicit = lp_passdb_expand_explicit();
-       
+
        if(sampass == NULL || buf == NULL) {
                DEBUG(0, ("init_samu_from_buffer_v3: NULL parameters 
found!\n"));
                return False;
        }
-                                                                       
+
 /* SAMU_BUFFER_FORMAT_V3       "dddddddBBBBBBBBBBBBddBBBdwdBwwd" */
 
        /* unpack the buffer into variables */
@@ -1559,7 +1558,7 @@ static bool init_samu_from_buffer_v3(struct samu 
*sampass, uint8 *buf, uint32 bu
                &bad_password_count,                                    /* w */
                &logon_count,                                           /* w */
                &unknown_6);                                            /* d */
-               
+
        if (len == (uint32) -1)  {
                ret = False;
                goto done;
@@ -1612,7 +1611,7 @@ static bool init_samu_from_buffer_v3(struct samu 
*sampass, uint8 *buf, uint32 bu
                                         lp_logon_script()),
                        PDB_DEFAULT);
        }
-       
+
        if (profile_path) {     
                fstrcpy( tmp_string, profile_path );
                if (expand_explicit) {
@@ -1839,12 +1838,12 @@ static uint32 init_buffer_from_samu_v3 (uint8 **buf, 
struct samu *sampass, bool
        } else {
                profile_path_len = 0;
        }
-       
+
        lm_pw = pdb_get_lanman_passwd(sampass);
        if (!lm_pw) {
                lm_pw_len = 0;
        }
-       
+
        nt_pw = pdb_get_nt_passwd(sampass);
        if (!nt_pw) {
                nt_pw_len = 0;
@@ -1927,7 +1926,7 @@ static uint32 init_buffer_from_samu_v3 (uint8 **buf, 
struct samu *sampass, bool
                DEBUG(0,("init_buffer_from_samu_v3: Unable to malloc() memory 
for buffer!\n"));
                return (-1);
        }
-       
+
        /* now for the real call to tdb_pack() */
        buflen = tdb_pack(*buf, len,  SAMU_BUFFER_FORMAT_V3,
                logon_time,                             /* d */
@@ -1961,7 +1960,7 @@ static uint32 init_buffer_from_samu_v3 (uint8 **buf, 
struct samu *sampass, bool
                pdb_get_bad_password_count(sampass),    /* w */
                pdb_get_logon_count(sampass),           /* w */
                pdb_get_unknown_6(sampass));            /* d */
-       
+
        /* check to make sure we got it correct */
        if (buflen != len) {
                DEBUG(0, ("init_buffer_from_samu_v3: somthing odd is going on 
here: bufflen (%lu) != len (%lu) in tdb_pack operations!\n", 
@@ -2038,7 +2037,7 @@ bool pdb_copy_sam_account(struct samu *dst, struct samu 
*src )
        }
 


-- 
Samba Shared Repository

Reply via email to