| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This breaks the ABI.
Guenther
See bug #7465 for more details.
|
|
|
|
| |
Guenther
|
| |
|
| |
|
|
|
|
| |
The last 5 patches address bug #8253 (winbindd panics if verify_idpool() fails).
|
| |
|
| |
|
| |
|
|
|
|
|
| |
ensure the event is canceled if the smbldap_state gets freed
this fixes a panic of winbindd if verify_idpool fails
|
|
|
|
|
|
|
|
|
|
| |
#7383)
metze
(cherry picked from commit 4bfe2d5655d97fbc7e65744425b5a098e77f5ba1)
(cherry picked from commit 62b2083c627abeb8a2fb7e5adc793c630d0d561c)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If IPv6 DNS names are turned on, but Samba isn't configured to
listen on an IPv6 interface, then is_myname_or_ipaddr() can return
false on a valid DNS name that it should detect is our own. If the
IPv6 addr is returned by preference, then looking at the first addr
only causes is_myname_or_ipaddr() to fail. We need to look at all the
addresses returned by the DNS lookup and check all of them against
our interface list. This is an order N^2 lookup, but there shouldn't
be enough addresses to make this a practical problem.
Jeremy.
Fix bug #8038 - Connecting to a printer can return INVALID_PARAMETER when IPv6
DNS names are turned on.
|
|
|
|
|
|
|
|
|
|
| |
'a-Z0-9' and the character in other_safe_chars and replaces with '_'.
This statement does not currently hold true in all cases (e.g. src =
"ТАНЦЕВАТЬ").
Part of a fix for bug 8040 - smbclient segfaults when a Cyrillic netbios
name or workgroup is configured.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is configured.
As discovered by David Disseldorp <ddiss@suse.de>, convert_string_talloc()
doesn't always return consistent results for a zero length string. The
API states an incoming string must *always* contain the terminating null,
but unfotunately too much code expects passing in a zero source length
to return a null terminated string, so at least ensure we return a
correct null string in the required character set and return the
correct length.
Also ensure we cannot return a zero length for a converted string
(we ensure that the returned buffer is always allocated and zero
terminated anyway) as calling code depends on the fact that returning
true from this function will *always* return a non-zero length (as
it must include the terminating null).
Note this is a different fix from what went into master (this is
identical to the fix I'm planning for 3.5.x) as convert_string_talloc()
has diverged between the two.
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When getgrouplist() is not defined, use getgrset() if it is defined
instead of using the initgroups() + getgroups() combo
Major contributions from Yannick Bergeron <yaberger@ca.ibm.com>
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Sat Mar 19 10:09:38 CET 2011 on sn-devel-104
(cherry picked from commit ed46dfc4f16e230645fae5f3b3b21c462694c30a)
Fix bug #8012 (Use getgrset() instead of initgroups() + getgroups() when
getgrouplist() is not defined).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
by default
In the file server SEC_STD_DELETE is granted on the file/directory
or by FILE_DELETE_CHILD on the parent directory.
metze
(similar to commit c7d10179108a3ae8af15c838042294f3fdced03c)
The last 2 patches address bug #8034 (SEC_STD_DELETE is always granted to the
owner of a file).
|
|
|
|
|
| |
Fix bug #8010 (str_checksum often returns same value for different strings
[Patch]).
|
|
|
|
|
|
|
|
|
|
|
|
| |
When pulling non-aligned ucs2 strings, we neglected to add in the
pad byte to the buffer length we've eaten. This caused the device
string in TCONX (which seems to be one of the few places that uses
non-aligned ucs2 strings) to be incorrectly read.
Volker please check.
Jeremy.
(cherry picked from commit e59a950c049679f0394ea41b463dbb9837eb5e63)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CVE-2011-0719
Fix bug #7949 (DoS in Winbind and smbd with many file descriptors open).
All current released versions of Samba are vulnerable to
a denial of service caused by memory corruption. Range
checks on file descriptors being used in the FD_SET macro
were not present allowing stack corruption. This can cause
the Samba code to crash or to loop attempting to select
on a bad file descriptor set.
A connection to a file share, or a local account is needed
to exploit this problem, either authenticated or unauthenticated
(guest connection).
Currently we do not believe this flaw is exploitable
beyond a crash or causing the code to loop, but on the
advice of our security reviewers we are releasing fixes
in case an exploit is discovered at a later date.
(cherry picked from commit c3ad6eb506623435d3d9ce62d6f34ed1c960d4be)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes sure that fd events doesn't dry out,
because a fd with a lower number is busy.
metze
The last 3 patches address bug #7942 (inotify can somehow cause endless loops in
with select()).
Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Mon Jan 31 16:59:44 CET 2011 on sn-devel-104
(cherry picked from commit ad10289ebcc78ab62ec86abb29f81eb769d17f4e)
(cherry picked from commit 3d2f72844a221dbdfe94fbf6e2b45c98ee158a9b)
|
|
|
|
|
|
| |
metze
(cherry picked from commit 1f2be10ebf4cc06e3b7aac41ea35bfc4a41ce828)
(cherry picked from commit d506b574bb94fdc23c5a62c5326cd478b5b63a11)
|
|
|
|
|
|
|
|
|
|
| |
account name (bug #7896)
metze
Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Thu Dec 30 18:09:13 CET 2010 on sn-devel-104
(cherry picked from commit f1d15ea54c313e71fc032b2ed191bdecad868858)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
SeSecurityPrivilege is the first LUID we have added that has a non-zero
"high" value, ensure our LUID code correctly supports it.
Jeremy.
The last 14 patches address bug #7716 (acl_xattr and acl_tdb modules don't store
unmodified copies of security descriptors).
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
|
|
|
|
| |
joined machine to fail to find users.
Ensure all username lookups go through Get_Pwnam_alloc(), which is the
correct wrapper function. We were using it *some* of the time anyway,
so this just makes us properly consistent.
Jeremy.
|
|
|
|
|
|
|
| |
Quite a few of our internal routines put stuff on talloc_tos() these days.
In top-level netapi routines, properly allocate a stackframe and clean it
again. Also, don't leak memory in the rpccli_ callers onto the libnetapi
context.
|
|
|
|
| |
counting terminator
|
| |
|
| |
|
|
|
|
|
| |
Guenther
(cherry picked from commit 6f47a24bc55be0ea907594a748774675a105b5e3)
|
|
|
|
| |
This fixes bug 7474.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix bug #7669 (buffer overflow in sid_parse() in Samba3 and dom_sid_parse in
Samba4).
CVE-2010-3069:
===========
Description
===========
All current released versions of Samba are vulnerable to
a buffer overrun vulnerability. The sid_parse() function
(and related dom_sid_parse() function in the source4 code)
do not correctly check their input lengths when reading a
binary representation of a Windows SID (Security ID). This
allows a malicious client to send a sid that can overflow
the stack variable that is being used to store the SID in the
Samba smbd server.
A connection to a file share is needed to exploit this
vulnerability, either authenticated or unauthenticated
(guest connection).
(cherry picked from commit a34c3e999bb1ea61da31c5b3e845b19663039358)
|
|
|
|
|
|
|
|
|
|
|
| |
startup.
Sync lib/tdb_validate.c with the change in current master.
Change tdb_validate_open() to always use O_RDWR instead of O_RDONLY,
as (from the bug report): "db_check() will always return failure for a read-only database.
Silently, without any log output, when _tdb_lockall() fails."
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
| |
netdomjoin-gui.
Patch from Buchan Milne <bgmilne@mandriva.org>.
Thanks!
Guenther
(cherry picked from commit 575b1018c65312e9eab562cf4851524cf2f8f24a)
|
|
|
|
|
|
|
| |
we already get them from lib/util/time.h
(cherry picked from commit f5729dbb6e720cb6076ea053f1ad0680259e6b39)
The last two patches address bug #7352 (TIME_T_MAX defines inconsistent).
|
|
|
|
|
|
| |
(cherry picked from commit a5db27936e9c6aad99300ea46808481803f57e08)
The last 32 patches address bug #7232 (CTDB persistent transactions are racy).
|
|
|
|
| |
picked from commit c7835a4845bbc7e4d340a75229866b2d4946f6eb)
|
|
|
|
| |
commit 79100c242153ea174a4405afd45cbf635da313aa)
|
|
|
|
|
| |
Detected while showing this code to obnox :-)
(cherry picked from commit f8b246e44c819b909b23b4b98ef0999c84d2f4ff)
|
|
|
|
|
|
| |
There's no need to still hold the g_lock tdb-level lock while telling the
waiters to retry
(cherry picked from commit 83542d973ca771353109c7da4b0391d6ba910f53)
|
|
|
|
|
|
|
|
| |
In g_lock_unlock we have a little race between the process_exists and
messaging_send call: We only send to 5 waiters now, they all might have died
between us checking their existence and sending the message. This change makes
g_lock_lock retry at least once every minute.
(cherry picked from commit be919d6faed198cdc29322a4d9491946c0b044b3)
|
|
|
|
|
|
|
| |
Only notify the first 5 pending lock waiters. This avoids a thundering herd
problem that is really nasty in a cluster. It also makes acquiring a lock a bit
more FIFO, lock waiters are added to the end of the array.
(cherry picked from commit 725b3654f831fbe0388cc09f46269903c9eef1d7)
|
|
|
|
|
|
|
| |
Only check the existence of the lock owner in g_lock_parse, check the rest of
the records only when we got the lock successfully. This reduces the load on
process_exists which can involve a network roundtrip in the clustered case.
(cherry picked from commit 07978bd175395e0dc770f68fff5b8bd8b0fdeb51)
|
|
|
|
|
|
| |
g_lock_parse might have thrown away entries from the locks array because the
processes were not around anymore. Don't store the orphaned entries.
(cherry picked from commit f3bdb163f461175c50b4930fa3464beaee30f4a8)
|
|
|
|
| |
bac235dd302570850bb25194ff4bd39b6d653f0d)
|
|
|
|
|
| |
Jeremy.
(cherry picked from commit 10e54fb422d9f1ae6d33e5fabbf8c651b0e57a8c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This made smbd crash in g_lock_lock() when trying to start a
transaction on a db with an already started transaction,
e.g. in a tcon_and_X where the share_info.tdb was not yet
initialized but share_info.tdb was already locked by another
process or writing acces to the winreg rpc pipe where the
registry tdb was already locked by another process.
What we really _want_ to do here by design is to react to
MSG_DBWRAP_G_LOCK_RETRY messages that are either sent
by a client doing g_lock_unlock or by ourselves when
we receive a CTDB_SRVID_SAMBA_NOTIFY or
CTDB_SRVID_RECONFIGURE message from ctdbd, i.e. when
either a client holding a lock or a complete node
has died.
Doing this properly involves calling tevent_loop_once(),
but doing this here with the main ctdbd messaging context
creates a nested event loop when g_lock_lock() is called
from the main event loop.
So as a quick fix, we act a little corasely here: we do
a select on the ctdb connection fd and when it is readable
or we get EINTR, then we retry without actually parsing
any ctdb packages or dispatching messages. This means that
we retry more often than necessary and intended by design,
but this does not harm and it is unobtrusive. When we have
finished, the main loop will pick up all the messages and
ctdb packets. The only extra twist is that we cannot use
timed events here but have to handcode a timeout for select.
Michael
(cherry picked from commit 83fffbeb44441a87569e543054af21d975eb20ae)
|
|
|
|
|
| |
Michael
(cherry picked from commit e4af0bc5af2c3ee025ca7fac251c3672ba2c8dd5)
|
|
|
|
|
| |
Michael
(cherry picked from commit 8e306b51b79d3dacd68be9f13aa8455e2eb4c03f)
|