1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00
Commit Graph

606 Commits

Author SHA1 Message Date
Andrew Kroeger
6c5c991304 s3: Call va_end() after all va_start()/va_copy() calls.
There are error paths in S3 where va_end() is not properly called after
va_start() or va_copy() have been called.

These issues were noted while performing an inspection for S4 bug #6129.  Thanks
to Erik Hovland <erik@hovland.org> for the original bug report.
2009-06-12 10:29:37 +02:00
Günther Deschner
bff54b90c3 util: move add_gid_to_array_unique to toplevel and add add_uid_to_array_unique.
Guenther
2009-05-29 13:49:58 +02:00
Marc VanHeyningen
a4887e250b s3: Allow child processes to exit gracefully if we are out of fds
When we run out of file descriptors for some reason, every new
connection forks a child that immediately panics causing smbd to
coredump.  This seems unnecessarily harsh; with this code change we
now catch that error and merely log a message about it and exit
without the core dump.

Signed-off-by: Tim Prouty <tprouty@samba.org>
2009-05-27 13:16:17 -07:00
Volker Lendecke
49ca690b4b Introduce "struct stat_ex" as a replacement for SMB_STRUCT_STAT
This patch introduces

struct stat_ex {
        dev_t           st_ex_dev;
        ino_t           st_ex_ino;
        mode_t          st_ex_mode;
        nlink_t         st_ex_nlink;
        uid_t           st_ex_uid;
        gid_t           st_ex_gid;
        dev_t           st_ex_rdev;
        off_t           st_ex_size;
        struct timespec st_ex_atime;
        struct timespec st_ex_mtime;
        struct timespec st_ex_ctime;
        struct timespec st_ex_btime; /* birthtime */
        blksize_t       st_ex_blksize;
        blkcnt_t        st_ex_blocks;
};
typedef struct stat_ex SMB_STRUCT_STAT;

It is really large because due to the friendly libc headers playing macro
tricks with fields like st_ino, so I renamed them to st_ex_xxx.

Why this change? To support birthtime, we already have quite a few #ifdef's at
places where it does not really belong. With a stat struct that we control, we
can consolidate the nanosecond timestamps and the birthtime deep in the VFS
stat calls.

At this moment it is triggered by a request to support the birthtime field for
GPFS. GPFS does not extend the system level struct stat, but instead has a
separate call that gets us the additional information beyond posix. Without
being able to do that within the VFS stat calls, that support would have to be
scattered around the main smbd code.

It will very likely break all the onefs modules, but I think the changes will
be reasonably easy to do.
2009-05-26 17:48:23 +02:00
Jelmer Vernooij
4c32978d97 Remove smb_mkstemp() - libreplace will now provide a secure mkstemp() if
the system one is broken.
2009-04-20 23:58:26 +02:00
Günther Deschner
531af136f9 s3: remove POLICY_HND.
Guenther
2009-03-18 23:22:29 +01:00
Jeremy Allison
8dd1faaa29 Remove the global "struct cm_cred_struct" and associated calls, make
callers pass in a struct user_auth_info * instead. This commit causes
smbc_set_credentials() to print out a message telling callers to use
smbc_set_credentials_with_fallback() instead, as smbc_set_credentials()
has a broken API (no SMBCCTX * pointer). No more global variables used
in the connection manager API for client dfs calls.
Jeremy.
2009-03-17 14:53:06 -07:00
Jeremy Allison
382d8069ad Add some appropriate const.
Jeremy.
2009-03-16 16:38:15 -07:00
Steven Danneman
5a9f668dab s3: Remove madvise support
This reverts 193be432.  The MADVISE_PROTECT is inherited by all child
processes and cannot be unset.  The intention of the original patch was
to protect the parent process, but allow children to be killed in low
memory.  Since this isn't possible with the current API, reverting the
whole feature.
2009-03-04 11:07:27 -08:00
Volker Lendecke
202a31d96d Remove read_pkt 2009-02-24 20:40:48 +01:00
Steven Danneman
193be432a2 s3: Refactor of madvise() usage in c441f58d
* move to reinit_after_fork() to protect all Samba daemons
* only protect parent processes
2009-02-20 16:30:13 -08:00
Steven Danneman
116ce19b10 Moved become_daemon() and close_low_fds() to shared util lib 2009-02-20 16:30:12 -08:00
Volker Lendecke
0844cca1d5 Replace get_myname() with the talloc version from v3-3-test 2009-02-13 12:15:03 +01:00
Volker Lendecke
47cb572d40 Add read_pkt_send/recv 2009-02-10 18:29:34 +01:00
Volker Lendecke
d94e9c802c Remove the global variable "chain_size" 2009-01-31 11:09:39 +01:00
Tim Prouty
b8f7cdbd79 s3: Add a new SMB_VFS_GET_ALLOC_SIZE vfs operation
This allows module implementors to customize what allocation size is
returned to the client.
2009-01-29 15:29:33 -08:00
Stefan Metzmacher
26e863e6dd s3: reinit_after_fork() should reinit the event context before the messaging context
Because messaging_reinit() may add events to the event context, which will
removed by event_context_reinit().

metze
2009-01-20 00:41:20 +01:00
Jeremy Allison
6fd867f036 Allow reinit_after_fork to be called safely from within swat and other binaries that don't have
an event context or a msg context. Fixes crash bug in swat.
Jeremy.
2009-01-15 15:52:41 -08:00
Steven Danneman
19a05bf2f4 Make STATEDIR and CACHEDIR configurable through ./configure and loadparm.c
If they are not explicitely set in either place both will default to LOCKDIR.

Signed-off-by: Michael Adam <obnox@samba.org>
2009-01-12 12:16:03 +01:00
Bo Yang
022e2f8199 clean event context after child is forked.
Signed-off-by: Stefan Metzmacher <metze@samba.org>
2009-01-05 15:07:31 +01:00
Volker Lendecke
972295f80a Rename parent_dirname_talloc() to parent_dirname() 2008-12-31 19:33:25 +01:00
Volker Lendecke
9b79181f15 Remove unused function parent_dirname 2008-12-31 19:33:25 +01:00
Volker Lendecke
8a507b1e7f Make use of TALLOC_MEMDUP in parent_dirname_talloc() 2008-12-31 19:33:24 +01:00
Volker Lendecke
add3d572d0 Remove unused function get_numlist() 2008-12-31 19:33:24 +01:00
Volker Lendecke
daeb3a190d Remove the global "cmdline_auth_info" from source3/lib/util.c
This involves changing all our clients, that's why it's so large.
2008-12-14 14:00:43 +01:00
Volker Lendecke
9a3be6f0f8 Move cli_trans_oob to lib/util.c
Rename it to trans_oob, it will be used in the server routines.
2008-11-28 08:24:37 +01:00
Jeremy Allison
8962be69c7 Make us clean under valgrind --leak-check=full by using talloc_autofree_context() instead of NULL.
Remove the code in memcache that does a TALLOC_FREE on stored pointers. That's a disaster waiting
to happen. If you're storing talloc'ed pointers, you can't know their lifecycle and they should
be deleted when their parent context is deleted, so freeing them at some arbitrary point later
will be a double-free.
Jeremy.
2008-11-06 20:48:13 -08:00
Jelmer Vernooij
f0c4829e82 Remove silly safe_free() function which is a wrapper around SAFE_FREE().
Since it's a function it just sets the local pointer to NULL and basically
is an equivalent to free().

It also claims it's being used for callbacks but isn't used that way
anywhere.
2008-10-19 13:06:14 +02:00
Jelmer Vernooij
b3b6d8f3f9 Fix const, dupes. 2008-10-18 15:00:18 +02:00
Jelmer Vernooij
2d89b52be8 Use separate make variables for libutil and libcrypto. 2008-10-18 14:28:40 +02:00
Jelmer Vernooij
519458a2fa Use shared util.c. 2008-10-18 14:27:13 +02:00
Jelmer Vernooij
842ea427bc Use standard va_copy. 2008-10-18 14:15:33 +02:00
Jelmer Vernooij
2fddd2e2d5 Share ndrdump implementation. 2008-10-13 15:58:45 +02:00
Volker Lendecke
ce47a2b2e3 Add a utility function to append a DATA_BLOB to a talloc object
(This used to be commit d8259cbe66)
2008-09-09 17:37:34 +02:00
Michael Adam
25f31194e5 Add modules_path() to construct paths to files in MODULESDIR.
Michael
(This used to be commit 5ef9da6f4f)
2008-08-15 23:19:57 +02:00
Jeremy Allison
03991ab073 Fix bug 5686 - libsmbclient segfaults with more than one SMBCCTX.
Here is a patch to allow many subsystems to be re-initialized. The only
functional change I made was to remove the null context tracking, as the memory
allocated here is designed to be left for the complete lifetime of the program.
Freeing this early (when all smb contexts are destroyed) could crash other
users of talloc.
Jeremy.
(This used to be commit 8c630efd25)
2008-08-12 13:35:15 -07:00
Volker Lendecke
4dfb6c0347 Remove an unused variable, process.c has its static copy
(This used to be commit 59136544ec)
2008-08-10 11:33:15 +02:00
Günther Deschner
6a3b742db7 util: add policy_hnd_equal().
Guenther
(This used to be commit 6aca163e89)
2008-07-17 10:32:03 +02:00
Derrell Lipman
31262a59bc [BUG 5580] Allow access to DFS shares via libsmbclient
Brian Sheehan provided a nice patch intended for the 3.0 code base.  This
commit applies a similar patch for the 3.3 code base.  It adds a new public
function to libsmbclient -- smbc_set_credentials() -- that may be called from
the authentication callback when DFS referrals are in use.

Derrell
(This used to be commit 888f922bd0)
2008-07-08 20:44:39 -04:00
Volker Lendecke
dc2e8823d2 If no node number is given, default to the current node in smbcontrol
(This used to be commit b4b3b6b1c6)
2008-05-19 14:56:15 +02:00
Günther Deschner
e556dfbb93 util: add strip_hostname() to strip of leading '\\'.
Guenther
(This used to be commit dbf96120d8)
2008-05-09 14:59:19 +02:00
Volker Lendecke
6ed9b7c973 Make the namelist arg to set_namearray const
(This used to be commit e7ce4bce5c)
2008-05-05 18:28:58 +02:00
Günther Deschner
4d8836ab96 Fix client authentication with -P switch in client tools (Bug 5435).
Guenther
(This used to be commit d077ef64cd)
2008-05-05 16:59:53 +02:00
Volker Lendecke
0c4093a234 Fix CLEAR_IF_FIRST handling of messages.tdb
We now open messages.tdb even before we do the become_daemon. become_daemon()
involves a fork and an immediate exit of the parent, thus the
parent_is_longlived argument must be set to false in this case. The parent is
not really long lived :-)
(This used to be commit 4f4781c6d1)
2008-04-23 22:18:26 +02:00
Stefan Metzmacher
bd1b120c2d util: add reinit_after_fork() function
metze
(This used to be commit 5f6c3a4f6d)
2008-04-18 14:43:07 +02:00
Günther Deschner
16fca542d7 Move is_valid_policy_hnd() out of net.
Guenther
(This used to be commit aae4d91e72)
2008-04-08 19:54:57 +02:00
Gerald W. Carter
8940fd09a6 Patch from Nicholas Brealey <nick@brealey.org> to distinguish between WinXP and WinXP64.
Defines a new value for the %a variable when detecting a Windows XP 64-bit client.
(This used to be commit 0c94918fb5)
2008-03-31 14:34:43 -05:00
Tim Potter
54db183987 Adding missing calls to va_end().
Just a small commit to get a handle on this git thingy.  This patch
fixes some missing calls to va_end() to match various calls to va_start()
and VA_COPY().

Tim.
(This used to be commit ec367f307d)
2008-01-27 09:33:42 +01:00
Michael Adam
a60b913a37 Fix tab_depth: it should not create an extra debug header.
In pstring removal 4ae4b23586, the behaviour of tab_depth was
changed to create an extra debug header (by using the DEBUGLVL
macro).

This extracts the debug level check from DEBUGLVL into
a macro CHECK_DEBUGLVL without the debug header creation
and uses this instead of DEBUGLVL in tab_depth.

Michael
(This used to be commit cbc7d921fa)
2008-01-23 08:16:37 +01:00
Volker Lendecke
2411c6cb90 Add "split_ntfs_stream_name()" together with a torture test
(This used to be commit d813bd9e02)
2008-01-19 23:10:09 +01:00