[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Mon Dec 2 22:48:02 UTC 2019


The branch, master has been updated
       via  1b583bff72c auth3: Remove auth_script
       via  a82ab4a7b3b s3: smbclient doc fix
       via  77d3a98aa63 smbd: Fix a typo
       via  4cd6c87a3d5 libndr: Fix a talloc context leak
       via  8d8d2bdfa4f smbd: Avoid leaking share_entries.tdb records
       via  18d7bb06983 smbd: Use share_mode_do_locked() in smbd_do_unlocking()
       via  39f96183169 lib: Remove unused smb_xvasprintf()
       via  6d1ce7dc172 winbind: Use vasprintf() in winbindd_cache
       via  34c269ad02c lib: Remove a duplicate fdprintf() prototype
       via  6ab4b87a7e6 lib: Remove duplicate get_pass() prototypes
       via  7093356440d lib: Make stdin_new_passwd() static
      from  27fc062d7ea heimdal-build: avoid hard-coded /usr/include/heimdal in asn1_compile-generated code.

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


- Log -----------------------------------------------------------------
commit 1b583bff72cb47860abc5168cc96d9087df16604
Author: Volker Lendecke <vl at samba.org>
Date:   Sun Dec 1 10:07:06 2019 +0100

    auth3: Remove auth_script
    
    Did this ever really work?
    
    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): Mon Dec  2 22:47:24 UTC 2019 on sn-devel-184

commit a82ab4a7b3baaafab91b3e8f0746de70b07c306d
Author: Puran Chand <pchand at vmware.com>
Date:   Thu Oct 31 21:02:47 2019 +0530

    s3: smbclient doc fix
    
    Signed-off-by: Puran Chand <pchand at vmware.com>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 77d3a98aa63f37a8ced01c65fdb9b05ca68c6281
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Nov 29 15:44:00 2019 +0100

    smbd: Fix a typo
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 4cd6c87a3d54e37b86c03b5d4bc0c24386fdfffb
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Nov 29 14:00:51 2019 +0100

    libndr: Fix a talloc context leak
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 8d8d2bdfa4f988bf5fdc9e05f7f3d1b4b6c54d0d
Author: Volker Lendecke <vl at samba.org>
Date:   Fri Nov 29 21:30:39 2019 +0100

    smbd: Avoid leaking share_entries.tdb records
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 18d7bb0698361900593bfe33c8655ba32a3671cd
Author: Volker Lendecke <vl at samba.org>
Date:   Thu Nov 28 16:07:40 2019 +0100

    smbd: Use share_mode_do_locked() in smbd_do_unlocking()
    
    We don't really need the share mode data here
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 39f9618316946783bf7ceb5baf8667e139f3301c
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Nov 27 19:02:43 2019 +0100

    lib: Remove unused smb_xvasprintf()
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Martin Schwenke <martins at samba.org>

commit 6d1ce7dc1723e0c9f63b6b5ec08141f198049a56
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Nov 27 19:00:26 2019 +0100

    winbind: Use vasprintf() in winbindd_cache
    
    Don't need to panic, we can do explicit checks in these few callers
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Martin Schwenke <martins at samba.org>

commit 34c269ad02cbb6fae0d9b9db43d6700d06de1842
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Nov 27 18:55:53 2019 +0100

    lib: Remove a duplicate fdprintf() prototype
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Martin Schwenke <martins at samba.org>

commit 6ab4b87a7e61d5af6e7980380c0f307bc310e5f0
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Nov 27 08:36:59 2019 +0100

    lib: Remove duplicate get_pass() prototypes
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Martin Schwenke <martins at samba.org>

commit 7093356440d0828f133fe652b090125af51cd01a
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Nov 27 08:35:05 2019 +0100

    lib: Make stdin_new_passwd() static
    
    It's only used in one place
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Martin Schwenke <martins at samba.org>

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

Summary of changes:
 librpc/ndr/ndr_basic.c            |   5 +-
 source3/auth/auth_script.c        | 187 --------------------------------------
 source3/auth/wscript_build        |   7 --
 source3/include/includes.h        |   4 -
 source3/include/libsmbclient.h    |   4 +-
 source3/include/proto.h           |   5 -
 source3/lib/util.c                |  19 ----
 source3/locking/share_mode_lock.c |  11 ++-
 source3/smbd/reply.c              |  84 +++++++++++------
 source3/utils/net.c               |   1 +
 source3/utils/net_proto.h         |   5 -
 source3/utils/passwd_proto.h      |   1 -
 source3/utils/passwd_util.c       |   3 +-
 source3/utils/pdbedit.c           |   1 +
 source3/utils/smbpasswd.c         |   1 +
 source3/winbindd/winbindd_cache.c |  21 ++++-
 source3/wscript                   |   2 +-
 17 files changed, 93 insertions(+), 268 deletions(-)
 delete mode 100644 source3/auth/auth_script.c


Changeset truncated at 500 lines:

diff --git a/librpc/ndr/ndr_basic.c b/librpc/ndr/ndr_basic.c
index 0bce1322265..5c717e69858 100644
--- a/librpc/ndr/ndr_basic.c
+++ b/librpc/ndr/ndr_basic.c
@@ -1466,8 +1466,9 @@ _PUBLIC_ enum ndr_err_code ndr_pull_timespec(struct ndr_pull *ndr,
 _PUBLIC_ void ndr_print_timespec(struct ndr_print *ndr, const char *name,
 				 const struct timespec *t)
 {
-	ndr->print(ndr, "%-25s: %s.%ld", name, timestring(ndr, t->tv_sec),
-		   (long)t->tv_nsec);
+	char *str = timestring(ndr, t->tv_sec);
+	ndr->print(ndr, "%-25s: %s.%ld", name, str, t->tv_nsec);
+	TALLOC_FREE(str);
 }
 
 _PUBLIC_ enum ndr_err_code ndr_push_timeval(struct ndr_push *ndr,
diff --git a/source3/auth/auth_script.c b/source3/auth/auth_script.c
deleted file mode 100644
index fae55e98c24..00000000000
--- a/source3/auth/auth_script.c
+++ /dev/null
@@ -1,187 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   Call out to a shell script for an authentication check.
-
-   Copyright (C) Jeremy Allison 2005.
-
-   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/>.
-*/
-
-#include "includes.h"
-#include "auth.h"
-
-#undef malloc
-
-#undef DBGC_CLASS
-#define DBGC_CLASS DBGC_AUTH
-
-/* Create a string containing the supplied :
- * domain\n
- * user\n
- * ascii hex challenge\n
- * ascii hex LM response\n
- * ascii hex NT response\n\0
- * and execute a shell script to check this.
- * Allows external programs to create users on demand.
- * Script returns zero on success, non-zero on fail.
- */
-
-static NTSTATUS script_check_user_credentials(const struct auth_context *auth_context,
-					void *my_private_data, 
-					TALLOC_CTX *mem_ctx,
-					const struct auth_usersupplied_info *user_info,
-					struct auth_serversupplied_info **server_info)
-{
-	const char *script = lp_parm_const_string( GLOBAL_SECTION_SNUM, "auth_script", "script", NULL);
-	char *secret_str;
-	size_t secret_str_len;
-	char hex_str[49];
-	int ret, i;
-
-	if (!script) {
-		return NT_STATUS_INVALID_PARAMETER;
-	}
-
-	if (!user_info) {
-		return NT_STATUS_INVALID_PARAMETER;
-	}
-
-	if (!auth_context) {
-		DEBUG(3,("script_check_user_credentials: no auth_info !\n"));
-		return NT_STATUS_INVALID_PARAMETER;
-	}		
-
-	secret_str_len = strlen(user_info->mapped.domain_name) + 1 +
-			strlen(user_info->client.account_name) + 1 +
-			16 + 1 + /* 8 bytes of challenge going to 16 */
-			48 + 1 + /* 24 bytes of challenge going to 48 */
-			48 + 1;
-
-	secret_str = (char *)malloc(secret_str_len);
-	if (!secret_str) {
-		return NT_STATUS_NO_MEMORY;
-	}
-
-	if (strlcpy( secret_str, user_info->mapped.domain_name, secret_str_len) >= secret_str_len) {
-		/* Truncate. */
-		goto cat_out;
-	}
-	if (strlcat( secret_str, "\n", secret_str_len) >= secret_str_len) {
-		/* Truncate. */
-		goto cat_out;
-	}
-	if (strlcat( secret_str, user_info->client.account_name, secret_str_len) >= secret_str_len) {
-		/* Truncate. */
-		goto cat_out;
-	}
-	if (strlcat( secret_str, "\n", secret_str_len) >= secret_str_len) {
-		/* Truncate. */
-		goto cat_out;
-	}
-
-	for (i = 0; i < 8; i++) {
-		slprintf(&hex_str[i*2], 3, "%02X", auth_context->challenge.data[i]);
-	}
-	if (strlcat( secret_str, hex_str, secret_str_len) >= secret_str_len) {
-		/* Truncate. */
-		goto cat_out;
-	}
-	if (strlcat( secret_str, "\n", secret_str_len) >= secret_str_len) {
-		/* Truncate. */
-		goto cat_out;
-	}
-
-	if (user_info->password.response.lanman.data) {
-		for (i = 0; i < 24; i++) {
-			slprintf(&hex_str[i*2], 3, "%02X", user_info->password.response.lanman.data[i]);
-		}
-		if (strlcat( secret_str, hex_str, secret_str_len) >= secret_str_len) {
-			/* Truncate. */
-			goto cat_out;
-		}
-	}
-	if (strlcat( secret_str, "\n", secret_str_len) >= secret_str_len) {
-		/* Truncate. */
-		goto cat_out;
-	}
-
-	if (user_info->password.response.nt.data) {
-		for (i = 0; i < 24; i++) {
-			slprintf(&hex_str[i*2], 3, "%02X", user_info->password.response.nt.data[i]);
-		}
-		if (strlcat( secret_str, hex_str, secret_str_len) >= secret_str_len) {
-			/* Truncate. */
-			goto cat_out;
-		}
-	}
-	if (strlcat( secret_str, "\n", secret_str_len) >= secret_str_len) {
-		/* Truncate. */
-		goto cat_out;
-	}
-
-	DEBUG(10,("script_check_user_credentials: running %s with parameters:\n%s\n",
-		script, secret_str ));
-
-	ret = smbrunsecret( script, secret_str);
-
-	SAFE_FREE(secret_str);
-
-	if (ret) {
-		DEBUG(1,("script_check_user_credentials: failed to authenticate %s\\%s\n",
-			user_info->mapped.domain_name, user_info->client.account_name ));
-		/* auth failed. */
-		return NT_STATUS_NO_SUCH_USER;
-	}
-
-	/* Cause the auth system to keep going.... */
-	return NT_STATUS_NOT_IMPLEMENTED;
-
-  cat_out:
-
-	SAFE_FREE(secret_str);
-	return NT_STATUS_NO_MEMORY;
-}
-
-/* module initialisation */
-static NTSTATUS auth_init_script(struct auth_context *auth_context, const char *param, auth_methods **auth_method) 
-{
-	struct auth_methods *result;
-
-	result = talloc_zero(auth_context, struct auth_methods);
-	if (result == NULL) {
-		return NT_STATUS_NO_MEMORY;
-	}
-	result->name = "script";
-	result->auth = script_check_user_credentials;
-
-	if (param && *param) {
-		/* we load the 'fallback' module - if script isn't here, call this
-		   module */
-		auth_methods *priv;
-		if (!load_auth_module(auth_context, param, &priv)) {
-			return NT_STATUS_UNSUCCESSFUL;
-		}
-		result->private_data = (void *)priv;
-	}
-
-        *auth_method = result;
-	return NT_STATUS_OK;
-}
-
-NTSTATUS auth_script_init(TALLOC_CTX *);
-NTSTATUS auth_script_init(TALLOC_CTX *ctx)
-{
-	return smb_register_auth(AUTH_INTERFACE_VERSION, "script", auth_init_script);
-}
diff --git a/source3/auth/wscript_build b/source3/auth/wscript_build
index c1062199aa8..277c4306557 100644
--- a/source3/auth/wscript_build
+++ b/source3/auth/wscript_build
@@ -53,13 +53,6 @@ bld.SAMBA3_MODULE('auth_builtin',
                  init_function='',
                  internal_module=True)
 
-bld.SAMBA3_MODULE('auth_script',
-                 subsystem='auth',
-                 source='auth_script.c',
-                 init_function='',
-                 internal_module=bld.SAMBA3_IS_STATIC_MODULE('auth_script'),
-                 enabled=bld.SAMBA3_IS_ENABLED_MODULE('auth_script'))
-
 bld.SAMBA3_MODULE('auth_samba4',
                   subsystem='auth',
                   source='auth_samba4.c',
diff --git a/source3/include/includes.h b/source3/include/includes.h
index abe12ac0930..2dafc65f41a 100644
--- a/source3/include/includes.h
+++ b/source3/include/includes.h
@@ -339,8 +339,6 @@ typedef char fstring[FSTRING_LEN];
 
 
 /* add varargs prototypes with printf checking */
-/*PRINTFLIKE2 */
-int fdprintf(int , const char *, ...) PRINTF_ATTRIBUTE(2,3);
 /*PRINTFLIKE1 */
 int d_printf(const char *, ...) PRINTF_ATTRIBUTE(1,2);
 /*PRINTFLIKE2 */
@@ -349,8 +347,6 @@ int d_fprintf(FILE *f, const char *, ...) PRINTF_ATTRIBUTE(2,3);
 /* PRINTFLIKE2 */
 int fstr_sprintf(fstring s, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
 
-int smb_xvasprintf(char **ptr, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);
-
 int asprintf_strupper_m(char **strp, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
 char *talloc_asprintf_strupper_m(TALLOC_CTX *t, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
 
diff --git a/source3/include/libsmbclient.h b/source3/include/libsmbclient.h
index 835c832b76a..5846550eb29 100644
--- a/source3/include/libsmbclient.h
+++ b/source3/include/libsmbclient.h
@@ -1647,7 +1647,7 @@ int smbc_getdents(unsigned int dh, struct smbc_dirent *dirp, int count);
 struct smbc_dirent* smbc_readdir(unsigned int dh);
 
 /**@ingroup directory
- * Works similar as smbc_readdir but returns more information about file.
+ * Works similar as smbc_readdir() but returns more information about file.
  *
  * @param dh        Valid directory as returned by smbc_opendir()
  *
@@ -1661,7 +1661,7 @@ struct smbc_dirent* smbc_readdir(unsigned int dh);
 const struct libsmb_file_info *smbc_readdirplus(unsigned int dh);
 
 /**@ingroup directory
- * Works similar as smbc_readdirplus as well as fills up stat structure if
+ * Works similar as smbc_readdirplus() as well as fills up stat structure if
  * provided.
  *
  * @param dh        Valid directory as returned by smbc_opendir()
diff --git a/source3/include/proto.h b/source3/include/proto.h
index ebb956c0d5e..7d81038c670 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -909,11 +909,6 @@ NTSTATUS sessionid_traverse_read(int (*fn)(const char *key,
 					   void *private_data),
 				 void *private_data);
 
-/* The following definitions come from utils/passwd_util.c  */
-
-char *stdin_new_passwd( void);
-char *get_pass( const char *prompt, bool stdin_get);
-
 /* The following definitions come from lib/avahi.c */
 
 struct AvahiPoll *tevent_avahi_poll(TALLOC_CTX *mem_ctx,
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 9c8717172a6..e9a7368b290 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -1516,25 +1516,6 @@ void *smb_xmalloc_array(size_t size, unsigned int count)
 	return p;
 }
 
-/*
-  vasprintf that aborts on malloc fail
-*/
-
- int smb_xvasprintf(char **ptr, const char *format, va_list ap)
-{
-	int n;
-	va_list ap2;
-
-	va_copy(ap2, ap);
-
-	n = vasprintf(ptr, format, ap2);
-	va_end(ap2);
-	if (n == -1 || ! *ptr) {
-		smb_panic("smb_xvasprintf: out of memory");
-	}
-	return n;
-}
-
 /*****************************************************************
  Get local hostname and cache result.
 *****************************************************************/
diff --git a/source3/locking/share_mode_lock.c b/source3/locking/share_mode_lock.c
index defa538b452..c42cafe17e4 100644
--- a/source3/locking/share_mode_lock.c
+++ b/source3/locking/share_mode_lock.c
@@ -1823,7 +1823,7 @@ bool share_mode_forall_entries(
 		state.ok = true;
 	}
 	if (!NT_STATUS_IS_OK(status)) {
-		DBG_DEBUG("dbwrap_parse_record returned %s\n",
+		DBG_DEBUG("dbwrap_do_locked failed: %s\n",
 			  nt_errstr(status));
 		return false;
 	}
@@ -1923,6 +1923,15 @@ static void share_mode_entry_do_fn(
 		state->num_share_modes -= 1;
 	}
 
+	if (state->num_share_modes == 0) {
+		state->status = dbwrap_record_delete(rec);
+		if (!NT_STATUS_IS_OK(state->status)) {
+			DBG_DEBUG("dbwrap_record_delete failed: %s\n",
+				  nt_errstr(state->status));
+		}
+		return;
+	}
+
 	state->status = dbwrap_record_storev(rec, dbufs, num_dbufs, 0);
 	if (!NT_STATUS_IS_OK(state->status)) {
 		DBG_DEBUG("dbwrap_record_storev failed: %s\n",
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 386283f46c9..5c173539aad 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -8362,20 +8362,24 @@ uint64_t get_lock_offset(const uint8_t *data, int data_offset,
 	return offset;
 }
 
-NTSTATUS smbd_do_unlocking(struct smb_request *req,
-			   files_struct *fsp,
-			   uint16_t num_ulocks,
-			   struct smbd_lock_element *ulocks,
-			   enum brl_flavour lock_flav)
+struct smbd_do_unlocking_state {
+	struct files_struct *fsp;
+	uint16_t num_ulocks;
+	struct smbd_lock_element *ulocks;
+	enum brl_flavour lock_flav;
+	NTSTATUS status;
+};
+
+static void smbd_do_unlocking_fn(
+	TDB_DATA value, bool *pmodified_dependent, void *private_data)
 {
-	struct share_mode_lock *lck;
-	NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
+	struct smbd_do_unlocking_state *state = private_data;
+	struct files_struct *fsp = state->fsp;
+	enum brl_flavour lock_flav = state->lock_flav;
 	uint16_t i;
 
-	lck = get_existing_share_mode_lock(talloc_tos(), fsp->file_id);
-
-	for(i = 0; i < num_ulocks; i++) {
-		struct smbd_lock_element *e = &ulocks[i];
+	for (i = 0; i < state->num_ulocks; i++) {
+		struct smbd_lock_element *e = &state->ulocks[i];
 
 		DBG_DEBUG("unlock start=%"PRIu64", len=%"PRIu64" for "
 			  "pid %"PRIu64", file %s\n",
@@ -8386,35 +8390,55 @@ NTSTATUS smbd_do_unlocking(struct smb_request *req,
 
 		if (e->brltype != UNLOCK_LOCK) {
 			/* this can only happen with SMB2 */
-			status = NT_STATUS_INVALID_PARAMETER;
-			goto done;
+			state->status = NT_STATUS_INVALID_PARAMETER;
+			return;
 		}
 
-		status = do_unlock(
-			fsp,
-			e->smblctx,
-			e->count,
-			e->offset,
-			lock_flav);
+		state->status = do_unlock(
+			fsp, e->smblctx, e->count, e->offset, lock_flav);
 
-		DEBUG(10, ("%s: unlock returned %s\n", __func__,
-			   nt_errstr(status)));
+		DBG_DEBUG("do_unlock returned %s\n",
+			  nt_errstr(state->status));
 
-		if (!NT_STATUS_IS_OK(status)) {
-			goto done;
+		if (!NT_STATUS_IS_OK(state->status)) {
+			return;
 		}
 	}
 
-	DEBUG(3, ("%s: %s num_ulocks=%d\n", __func__, fsp_fnum_dbg(fsp),
-		  num_ulocks));
+	*pmodified_dependent = true;
+}
 
-done:
-	if (NT_STATUS_IS_OK(status) && (lck != NULL)) {
-		lck->data->modified = true;
+NTSTATUS smbd_do_unlocking(struct smb_request *req,
+			   files_struct *fsp,
+			   uint16_t num_ulocks,
+			   struct smbd_lock_element *ulocks,
+			   enum brl_flavour lock_flav)
+{
+	struct smbd_do_unlocking_state state = {
+		.fsp = fsp,
+		.num_ulocks = num_ulocks,
+		.ulocks = ulocks,
+		.lock_flav = lock_flav,
+	};
+	NTSTATUS status;
+
+	DBG_NOTICE("%s num_ulocks=%"PRIu16"\n", fsp_fnum_dbg(fsp), num_ulocks);
+
+	status = share_mode_do_locked(
+		fsp->file_id, smbd_do_unlocking_fn, &state);
+
+	if (!NT_STATUS_IS_OK(status)) {
+		DBG_DEBUG("share_mode_do_locked failed: %s\n",
+			  nt_errstr(status));
+		return status;
+	}
+	if (!NT_STATUS_IS_OK(state.status)) {
+		DBG_DEBUG("smbd_do_unlocking_fn failed: %s\n",
+			  nt_errstr(status));
+		return state.status;
 	}
 
-	TALLOC_FREE(lck);
-	return status;
+	return NT_STATUS_OK;
 }
 
 /****************************************************************************
diff --git a/source3/utils/net.c b/source3/utils/net.c
index 71b9b07d7d7..683b46794e4 100644
--- a/source3/utils/net.c
+++ b/source3/utils/net.c
@@ -51,6 +51,7 @@
 #include "cmdline_contexts.h"
 #include "lib/gencache.h"
 #include "auth/credentials/credentials.h"
+#include "source3/utils/passwd_proto.h"
 
 #ifdef WITH_FAKE_KASERVER
 #include "utils/net_afs.h"
diff --git a/source3/utils/net_proto.h b/source3/utils/net_proto.h
index 13058be8b8b..d5387f50e46 100644
--- a/source3/utils/net_proto.h
+++ b/source3/utils/net_proto.h
@@ -439,11 +439,6 @@ NTSTATUS net_lookup_name_from_sid(struct net_context *c,
 NTSTATUS net_lookup_sid_from_name(struct net_context *c, TALLOC_CTX *ctx,
 				  const char *full_name, struct dom_sid *pret_sid);
 
-/* The following definitions come from utils/passwd_util.c  */
-
-char *stdin_new_passwd( void);
-char *get_pass( const char *prompt, bool stdin_get);
-
 /* The following definitions come from utils/net_g_lock.c  */
 int net_g_lock(struct net_context *c, int argc, const char **argv);
 
diff --git a/source3/utils/passwd_proto.h b/source3/utils/passwd_proto.h
index 104e00a65c3..40998998ae7 100644
--- a/source3/utils/passwd_proto.h
+++ b/source3/utils/passwd_proto.h
@@ -26,7 +26,6 @@
 
 /* The following definitions come from utils/passwd_util.c  */
 
-char *stdin_new_passwd( void);
 char *get_pass( const char *prompt, bool stdin_get);
 


-- 
Samba Shared Repository



More information about the samba-cvs mailing list