diff options
-rw-r--r-- | source3/Makefile.in | 1 | ||||
-rw-r--r-- | source3/auth/auth_util.c | 32 | ||||
-rw-r--r-- | source3/auth/server_info.c | 55 | ||||
-rw-r--r-- | source3/include/proto.h | 4 |
4 files changed, 60 insertions, 32 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in index 92a0b43316..d7b84ccee2 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -764,6 +764,7 @@ AUTH_SCRIPT_OBJ = auth/auth_script.o AUTH_NETLOGOND_OBJ = auth/auth_netlogond.o AUTH_OBJ = auth/auth.o @AUTH_STATIC@ auth/auth_util.o auth/token_util.o \ + auth/server_info.o \ auth/auth_compat.o auth/auth_ntlmssp.o \ $(PLAINTEXT_AUTH_OBJ) $(SLCACHE_OBJ) $(DCUTIL_OBJ) diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c index 647d20cd65..f71ed90687 100644 --- a/source3/auth/auth_util.c +++ b/source3/auth/auth_util.c @@ -493,38 +493,6 @@ bool make_user_info_guest(struct auth_usersupplied_info **user_info) return NT_STATUS_IS_OK(nt_status) ? True : False; } -static int server_info_dtor(struct auth_serversupplied_info *server_info) -{ - TALLOC_FREE(server_info->sam_account); - ZERO_STRUCTP(server_info); - return 0; -} - -/*************************************************************************** - Make a server_info struct. Free with TALLOC_FREE(). -***************************************************************************/ - -static struct auth_serversupplied_info *make_server_info(TALLOC_CTX *mem_ctx) -{ - struct auth_serversupplied_info *result; - - result = TALLOC_ZERO_P(mem_ctx, struct auth_serversupplied_info); - if (result == NULL) { - DEBUG(0, ("talloc failed\n")); - return NULL; - } - - talloc_set_destructor(result, server_info_dtor); - - /* Initialise the uid and gid values to something non-zero - which may save us from giving away root access if there - is a bug in allocating these fields. */ - - result->utok.uid = -1; - result->utok.gid = -1; - return result; -} - static char *sanitize_username(TALLOC_CTX *mem_ctx, const char *username) { fstring tmp; diff --git a/source3/auth/server_info.c b/source3/auth/server_info.c new file mode 100644 index 0000000000..844e3290ea --- /dev/null +++ b/source3/auth/server_info.c @@ -0,0 +1,55 @@ +/* + Unix SMB/CIFS implementation. + Authentication utility functions + Copyright (C) Volker Lendecke 2010 + + 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" + +#undef DBGC_CLASS +#define DBGC_CLASS DBGC_AUTH + +static int server_info_dtor(struct auth_serversupplied_info *server_info) +{ + TALLOC_FREE(server_info->sam_account); + ZERO_STRUCTP(server_info); + return 0; +} + +/*************************************************************************** + Make a server_info struct. Free with TALLOC_FREE(). +***************************************************************************/ + +struct auth_serversupplied_info *make_server_info(TALLOC_CTX *mem_ctx) +{ + struct auth_serversupplied_info *result; + + result = TALLOC_ZERO_P(mem_ctx, struct auth_serversupplied_info); + if (result == NULL) { + DEBUG(0, ("talloc failed\n")); + return NULL; + } + + talloc_set_destructor(result, server_info_dtor); + + /* Initialise the uid and gid values to something non-zero + which may save us from giving away root access if there + is a bug in allocating these fields. */ + + result->utok.uid = -1; + result->utok.gid = -1; + return result; +} diff --git a/source3/include/proto.h b/source3/include/proto.h index 1efa3cf27e..f6061602a0 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -158,6 +158,10 @@ bool is_trusted_domain(const char* dom_name); NTSTATUS auth_winbind_init(void); +/* The following definitions come from auth/server_info.c */ + +struct auth_serversupplied_info *make_server_info(TALLOC_CTX *mem_ctx); + /* The following definitions come from auth/auth_wbc.c */ NTSTATUS auth_wbc_init(void); |