| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes bug #8608.
If you join samba with idmap_ad backend to an AD. When you try to
enumerate users with 'getent passwd' and the user doesn't have a uid
set, then getent is aborted cause of NT_STATUS_NONE_MAPPED. If we can't
map a user we should not stop but continue enumerating users.
This normally happens with the default user 'krbtgt' with idmap_ad but
could also happen with other backends.
Autobuild-User: Andreas Schneider <asn@cryptomilk.org>
Autobuild-Date: Tue Nov 15 16:52:04 CET 2011 on sn-devel-104
(backported from commit 10b285ccc29b106f164a6c18116e237634867717)
Signed-off-by: Andreas Schneider <asn@samba.org>
|
|
|
|
|
|
|
|
|
|
| |
this is needed to allocate gids for BUILTIN\Users and
BUILTIN\Administrators and for local users/group that
admins might want to create
autorid will now allocate one range for this purpose
and can so give out as many uids and gids as the
configured rangesize allows
|
|
|
|
|
| |
we will need some more HWM soon, so move out initialization and
optimize the logic using the new interface of dbwrap_fetch_uint32
|
|
|
|
|
| |
this prepares for allocation of non-domain ranges that cannot be
expressed by a SID (e.g. an allocation pool)
|
|
|
|
|
|
|
|
| |
Fix confirmed by reporter.
Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Fri Oct 28 23:04:47 CEST 2011 on sn-devel-104
(cherry picked from commit f30f71c14a0b89dea296910ac9b92d3ae4016613)
|
|
|
|
|
| |
Found and fix reported by Micha Lenk <micha@lenk.info>. Thanks !
(cherry picked from commit 1e4761d05978b7a495d121acc1deaa7049f3911c)
|
|
|
|
| |
Fix bug #8420 (wb_group_members: non-resistance against garbage).
|
|
|
|
|
|
|
|
|
|
|
|
| |
I've seen
[2011/08/26 01:44:10.872057, 1] winbindd/winbindd_dual.c:1336(fork_domain_child)
fork_domain_child: Could not read child status: nread=-1, error=Interrupted system call
on a customer box. Not good.
(cherry picked from commit 964e809ce2069ad888e0fb12dfe51bac5a461508)
The last 3 patches address bug #8409 (f7d97868 created a new race condition).
|
|
|
|
|
|
|
|
| |
Counterpart for last checkin. A lot less likely, but not impossible in a child.
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Fri Aug 26 13:14:27 CEST 2011 on sn-devel-104
(cherry picked from commit e0e3d215b1902ecbeb3d469af9a196856711921e)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a race condition that leads to the winbindd_children list becoming
corrupted. It happens when on a busy winbind SIGCHLD is a bit late.
Imagine a winbind with multiple requests in the queue for a single child. Child
dies, and before the SIGCHLD handler is called we find the socket to be dead.
wb_child_request_done is called, receiving an error from wb_simple_trans_recv.
It closes the socket. Then immediately the wb_child_request_trigger will do
another fork_domain_child before the signal handler is called. This means that
we do another fork_domain_child, we have child->sock==-1 at this point.
fork_domain_child will do a DLIST_ADD(winbindd_children, child) a second time
where the child is already part of that list. This corrupts the list. Then the
signal handler kicks in, spinning in
for (child = winbindd_children; child != NULL; child = child->next) {
forever. Not good. This patch makes sure that both conditions (sock==-1 and not
part of the list) for a winbindd_child struct match up.
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Fri Aug 26 18:51:24 CEST 2011 on sn-devel-104
(cherry picked from commit ed058f4dc3e059967f3c0538bc220866e9c63588)
|
|
|
|
|
|
| |
with NULL
this fixes the fallback to the deprecated spelling idmap:script
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In ancient times, when ctdb had not support for persistent databases and
tdb2 was introduced as a two-layer solution and it was more important than
today to be able to change the location of the permanent database file
because it had to reside on shared storage.
But these were times when idmap_tdb2 was not even officially released.
Nowadays, with ctdb handling the persistent idmap2.tdb database, the path
is stripped anyways, so this undocumented option has become unnecessary
and is hence removed.
Autobuild-User: Michael Adam <obnox@samba.org>
Autobuild-Date: Wed Jul 27 05:37:57 CEST 2011 on sn-devel-104
(cherry picked from commit 3276060da4e7d495bd5cf5cbf7237e64d948ee77)
The last 10 patches address
bug #8328 (final cleanup of idmap_tdb2 code and docs needed for release).
|
|
|
|
| |
67cd2f9d867fad1f7df2d6a6a5cdb723336ac495)
|
|
|
|
| |
4b5ada3d27198b49771acb70ae979087235be783)
|
|
|
|
| |
picked from commit 551185573899b6e608863f833633d40ae04458d8)
|
|
|
|
| |
picked from commit 7d3dc2164b3929c642127659593e69fc865a6184)
|
|
|
|
|
|
|
|
|
|
| |
: script" instead
With this patch, "idmap config * : script" will override "idmap : script".
If "idmap : script" is present, a deprecation warning will be printed in any
case. If "idmap config * : script" is not set, then the value of "idmap :script"
will be used for backwards compatibility.
(cherry picked from commit b6c82f18f17cdded771d285930566c1d104686aa)
|
|
|
|
|
|
|
| |
Guenther
Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Thu Jun 30 00:42:23 CEST 2011 on sn-devel-104
|
|
|
|
|
|
| |
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Mon Jun 27 18:21:30 CEST 2011 on sn-devel-104
(cherry picked from commit 0a74caa473f491050bc5f64b6d6956c00088c5cd)
|
|
|
|
| |
The last 4 patches address bug #8213 (Fixes in idmap_autorid).
|
|
|
|
| |
the success case
|
|
|
|
| |
rangesize"
|
|
|
|
| |
autorid can only be used as a backend for the default idmap configuration.
|
|
|
|
|
|
|
|
|
|
| |
This hopefully catches future bugs.
metze
Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Thu Jun 16 19:50:16 CEST 2011 on sn-devel-104
(cherry picked from commit 5961852d9c0e5cf64cea988586d610af9d63d487)
|
|
|
|
|
|
|
|
| |
The wrong fix for bug #8215 discovered this bug, as it caused
sam_rids_to_names() to always return NT_STATUS_NONE_MAPPED.
metze
(cherry picked from commit 85809ccbe3a79f307af1fdd227f33b899d8db1b4)
|
|
|
|
|
|
|
|
|
| |
This reverts commit 207a84d725b905c2b119d2ef0f4f4d4eb391140d.
This is the wrong fix for the problem, see bug #8215.
metze
(cherry picked from commit 283f8a7fb5089a7126f07e26315fd06ab59997d8)
|
|
|
|
| |
from commit b88d80a97572a9d7730830f09b25a7d6dc655653)
|
|
|
|
| |
commit 88078c856976ebcad68251129ddc0556663dcf9c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'm having trouble getting my system setup to do submits right now but
I discovered a bug in the subject file that causes winbindd lookup sids
command to assign incorrect unix ids. The change to sid_peek_rid fixes
the case where you call lookup sids with sids s1 s2 s3 which cause them
to be cached. then call with s1 s2 s4 and s4 will get the unix id of s1.
The other change fixes the case where a sid that was not translated
gets a value returned instead of being listed as unmapped.
Could someone review this and push to master and 3.6 for me?
Fix bug #8216 (winbind returns wrong results with sids2xids).
|
|
|
|
|
|
|
| |
This fixes looking up the correct unix user instead of allocation a new
uid and creating it.
Fix bug #8215 (winbind unix username lookup doesn't work correctly).
|
|
|
|
|
|
| |
header comments."
This reverts commit 6df3ff20620b3262ff232a478312c61a207ed4ff.
|
|
|
|
|
|
|
|
|
|
|
| |
configured domains.
After the preparations, this is achieved by using idmap_ldap_allocate_id_internal()
as get_new_id rw method instead of idmap_ldap_allocate_id().
(cherry picked from commit 74cd06b3dff42bda4dd0a0f3fd250a975d0258ed)
The last 3 patches address bug #8200 (Add Support for multiple writable ldap
idmap domains).
|
|
|
|
|
| |
This is in preparation of allowing allocating ldap based domain-specific configs.
(cherry picked from commit dea3ef1ab689a3d01846147d2a83377b09335f8f)
|
|
|
|
|
| |
This is in preparation of allowing allocating ldap based domain-specific configs.
(cherry picked from commit 2de65b97b98e2c8cc218b60da749ac17195d8413)
|
|
|
|
| |
Based on Volker's original code.
|
|
|
|
|
|
| |
comments.
Add missing GPL headers and (C) statements.
|
|
|
|
|
|
|
|
| |
Windows does not track bad password attempts when offline. We were locking users out but not honoring the lockout duration.
Autobuild-User: Jim McDonough <jmcd@samba.org>
Autobuild-Date: Wed May 25 18:11:10 CEST 2011 on sn-devel-104
(cherry picked from commit b58534f1fca27e3e72f4f4107538ec05734bd42a)
|
|
|
|
| |
Guenther
|
|
|
|
|
| |
Guenther
(cherry picked from commit d8cfca3a9bd2b6b6c562fd202377d95a98eb5472)
|
|
|
|
|
| |
Guenther
(cherry picked from commit 0e76eddcc8a4e7e98167b8f92387fae015fae095)
|
|
|
|
|
|
|
| |
needed).
Guenther
(cherry picked from commit 0bb4701a747599042242b0612bc392a6e6d777af)
|
|
|
|
|
| |
Guenther
(cherry picked from commit 233779cce4f47799d5912f362faadcd564bbf096)
|
|
|
|
|
|
| |
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Tue May 10 13:11:10 CEST 2011 on sn-devel-104
(cherry picked from commit 44cc1656276d99816614408b5cd846e6a57eacf0)
|
|
|
|
|
|
| |
Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Wed May 4 20:05:42 CEST 2011 on sn-devel-104
(cherry picked from commit 54727f93163f1529eb78dfab5ac605e138391797)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a winbind child exits, we need to immediately close the socket. If not,
the next request to that child will be sent to a socket without a listener,
leading to a failed request. This failed request will then trigger a proper
re-init.
This patch avoids the one failed request.
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Wed May 4 13:32:16 CEST 2011 on sn-devel-104
(cherry picked from commit d08414b6799747f224ba02300585c8b15ac6bc0e)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the clustering case if ctdb is unhappy, winbindd_reinit_after_fork fails.
This can lead to an endless loop depending on the scheduling of the parent vs
child. Parent forks, child is immediately scheduled and exits. Parent gets
SIGCHLD, parent is then scheduled before it sends the request out to the child.
Parent tries to fork again immediately.
The code before this patch did not really take into account that
reinit_after_fork can fail. The code now sends the result of
winbindd_reinit_after_fork to the parent and the parent only considers the
child alive when it got NT_STATUS_OK.
This was seen in 3.4 winbind. winbind has changed significantly since then, so
it might be possible that this does not happen anymore in exactly this way. But
passing up the status of reinit_after_fork and only consider the child alive
when that's ok is the correct thing to do anyway.
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Fri Apr 29 17:58:19 CEST 2011 on sn-devel-104
(cherry picked from commit df099e66240c7670c9f7b7dcccb1c38216bac3ec)
|
|
|
|
| |
(cherry picked from commit aa5abcaf7e2844e3bd3d8e8fe26488673ad3c00e)
|
|
|
|
|
| |
This should further reduce fd load in winbind children
(cherry picked from commit 0757688eb34ec1a22bf8c28f72416d6684756647)
|
|
|
|
|
|
|
|
| |
Guenther
Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Fri Apr 29 14:00:30 CEST 2011 on sn-devel-104
(cherry picked from commit 50883cfeb4eed3d538f71443060745f8747044c9)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In an overload situation, the winbind helper child process inherits all those
hundreds of fd's which it will never talk to. Close them.
We (Christian Ambach and me) just saw a crash in libkrb5. Christian's analysis
showed that libkrb5 also does select, probably exceeding FD_SETSIZE and
crashing due to that reason. The parent winbind in theory does not do Kerberos
at all, so this should fix that problem.
The crash is interesting because the child process did not really crash.
Somewhere in glibc backtrace() is called, probably due to an assert() or some
explicit consistency check. This then somehow generates a signal probably due
to corrupted memory structures. That signal triggers Samba to again call
backtrace(). This blocks hard on a ptrace_once(). Sorry for the long backtrace
here, but this *is* interesting.
The child process blocking and not really crashing makes the situation worse:
The parent process does not get told the child has crashed and more client
sockets pile up.
This patch is intended to put some relief on this problem by closing the
majority of sockets the parent holds.
(gdb) bt
\#0 0x00002ad686a2b07b in pthread_once () from /lib64/libpthread.so.0
\#1 0x00002ad6867adf87 in backtrace () from /lib64/libc.so.6
\#2 0x00002ad683eab27c in log_stack_trace () at lib/util.c:1580
\#3 0x00002ad683eab34b in smb_panic (why=0x2ad6841c6ec3 "internal error") at lib/util.c:1481
\#4 0x00002ad683e9af3e in fault_report (sig=1) at lib/fault.c:52
\#5 sig_fault (sig=1) at lib/fault.c:75 #6 <signal handler called>
\#7 0x00002ad68673b005 in _int_malloc () from /lib64/libc.so.6
\#8 0x00002ad68673c95d in calloc () from /lib64/libc.so.6
\#9 0x00002ad684503e25 in _dl_new_object () from /lib64/ld-linux-x86-64.so.2
\#10 0x00002ad6844ffadc in _dl_map_object_from_fd () from /lib64/ld-linux-x86-64.so.2
\#11 0x00002ad684501d43 in _dl_map_object () from /lib64/ld-linux-x86-64.so.2
\#12 0x00002ad68450ac8d in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
\#13 0x00002ad684506ed6 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
\#14 0x00002ad68450a68c in _dl_open () from /lib64/ld-linux-x86-64.so.2
\#15 0x00002ad6867d0ba0 in do_dlopen () from /lib64/libc.so.6
\#16 0x00002ad684506ed6 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
\#17 0x00002ad6867d0d07 in __libc_dlopen_mode () from /lib64/libc.so.6
\#18 0x00002ad6867adeea in init () from /lib64/libc.so.6
\#19 0x00002ad686a2b083 in pthread_once () from /lib64/libpthread.so.0
\#20 0x00002ad6867adf87 in backtrace () from /lib64/libc.so.6
\#21 0x00002ad68673285f in __libc_message () from /lib64/libc.so.6
\#22 0x00002ad68673a30f in _int_free () from /lib64/libc.so.6
\#23 0x00002ad68673a76b in free () from /lib64/libc.so.6
\#24 0x00002ad6853fe346 in krb5int_sendto () from /usr/lib64/libkrb5.so.3
\#25 0x00002ad6853fe511 in krb5_sendto_kdc () from /usr/lib64/libkrb5.so.3
\#26 0x00002ad6853df7c4 in ?? () from /usr/lib64/libkrb5.so.3
\#27 0x00002ad6853e0919 in krb5_get_init_creds () from /usr/lib64/libkrb5.so.3
\#28 0x00002ad6853e2a94 in krb5_get_init_creds_password () from /usr/lib64/libkrb5.so.3
\#29 0x00002ad684169ff1 in kerberos_kinit_password_ext (principal=0x2ad684702180 "<sanitized>", password=0x2ad6844c5bb0 "<sanitized>", time_offset=0, expire_time=0x2ad6846bf380, renew_till_time=0x0, cache_name=0x2ad6843cb3e0 "MEMORY:winbind_ccache", request_pac=false, add_netbios_addr=false, renewable_time=<value optimized out>, ntstatus=0x0) at libads/kerberos.c:223
\#30 0x00002ad68416a223 in ads_kinit_password (ads=0x2ad6846bf330) at libads/kerberos.c:327
\#31 0x00002ad68415f725 in ads_sasl_spnego_bind (ads=0x2ad6846bf330) at libads/sasl.c:812
\#32 0x00002ad68415dbc1 in ads_sasl_bind (ads=0x2ad6846bf330) at libads/sasl.c:1114
\#33 0x00002ad68415c09b in ads_connect (ads=0x2ad6846bf330) at libads/ldap.c:711
\#34 0x00002ad683e1b8f7 in ads_cached_connection (domain=0x2ad6846b07c0) at winbindd/winbindd_ads.c:124
\#35 0x00002ad683e1bc85 in sequence_number (domain=0x2ad6846b07c0, seq=0x2ad6846b0cd8) at winbindd/winbindd_ads.c:1233
\#36 0x00002ad683dffdd7 in refresh_sequence_number (domain=0x2ad6846b07c0, force=128) at winbindd/winbindd_cache.c:510
\#37 0x00002ad683e00520 in wcache_fetch (cache=<value optimized out>, domain=0x2ad6846b07c0, format=0x2ad68419901e "U/%s") at winbindd/winbindd_cache.c:638
\#38 0x00002ad683e04ac8 in query_user (domain=0x2ad6846b07c0, mem_ctx=0x2ad6846bc920, user_sid=0x7fff1d0cb8c0, info=0x7fff1d0cb810) at winbindd/winbindd_cache.c:1910
\#39 0x00002ad683df2d38 in winbindd_dual_userinfo (domain=0x2ad6846b07c0, state=0x7fff1d0cc9c0) at winbindd/winbindd_user.c:173
\#40 0x00002ad683e232e0 in fork_domain_child (child=0x2ad6846c2440) at winbindd/winbindd_dual.c:485
\#41 schedule_async_request (child=0x2ad6846c2440) at winbindd/winbindd_dual.c:319
\#42 0x00002ad683e229f2 in async_request_fail (state=0x2ad6846c1d00) at winbindd/winbindd_dual.c:214
\#43 0x00002ad683ebabec in run_events (ev=0x2ad6846aebf0, selrtn=0, read_fds=0x7fff1d0ce910, write_fds=<value optimized out>) at lib/events.c:123
\#44 0x00002ad683df08cb in process_loop (argc=<value optimized out>, argv=<value optimized out>, envp=<value optimized out>) at winbindd/winbindd.c:1113
\#45 main (argc=<value optimized out>, argv=<value optimized out>, envp=<value optimized out>) at winbindd/winbindd.c:1437
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Thu Apr 28 12:06:12 CEST 2011 on sn-devel-104
(cherry picked from commit 2e1522f3785d542c429fce83264ad67f35bcef68)
|