[SCM] Samba Shared Repository - branch v3-6-stable updated
Karolin Seeger
kseeger at samba.org
Tue Apr 12 07:53:30 MDT 2011
The branch, v3-6-stable has been updated
via 567a3e7 WHATSNEW: Update release notes.
via fb688a4 WHATSNEW: Update release notes.
via b21df62 s3:WHATSNEW: mention Gregor's "net idmap check" tool (cherry picked from commit 9ffc2a90167518fd9de43bf801170012d0842b74)
via 2351175 s3: Retry the join with the short name
via 2c52829 s3: Initialize output in libnet_Join
via ac1d618 s3: For net ads join, create a krb5.conf
via 9a267fc s3-util: separate out cmdline helpers.
via d201aa1 s3: add some forward declarations.
via ac54b94 s3-netapi: use dcerpc_try_samr_connects().
via 27a715d s3-netapi: use libnetapi_get_binding_handle().
via 9b75978 s3-netapi: add libnetapi_get_binding_handle().
via dda50a9 s3-librpc: let librpc/rpc/dcerpc.h include ndr and generated dcerpc headers.
via 66e8961 s3-rpc_client: move rpc_cli_transport structs and protos to rpc_transport.h
via 8db0fa1 talloc/testsuite: avoid memory leak reported by valgrind
via d45194d talloc/testsuite: test more talloc_pool related things
via c71c211 talloc: include valgrind headers if available
via 6a9b427 talloc: add TC_INVALIDATE_POOL marco
via 1a59ccb talloc: add TC_UNDEFINE_GROW_CHUNK() marco
via fea8fc6 talloc: add TC_INVALIDATE_SHRINK_CHUNK() marco
via a67532a talloc: add TC_INVALIDATE_FULL_CHUNK() macro
via df21550 talloc: use VALGRIND_MAKE_MEM_UNDEFINED() before memmove()
via 2944251 talloc: optimize talloc_free() and talloc_realloc() for talloc pools
via b6b0d0d talloc: add TC_POOL_FIRST_CHUNK() macro
via 5bde8e2 talloc: add TC_POOL_SPACE_LEFT() macro
via 3d21e94 talloc: add TC_ALIGN16() macro
via 4bd3ee3 talloc: use TC_HDR_SIZE instead of sizeof(struct talloc_chunk)
via 4e65ab0 s3-printing: Use become_user_by_session() function.
via d328db5 s3-smbd: Added a become_user_by_session() function.
via 08ccde5 s3-smbd: Added a change_to_user_by_session() function.
via 6d5cdd6 s3: Wrap creating the svcctl keys in a transaction
via bfa5b7d s3: Make reg_backend_db.h includable by itself (cherry picked from commit 6ba31d3bd29dd11b1b98859f4d8a65d9be7dac60) (cherry picked from commit a5495e70cc5f7659ab94d8570195edf3bd41072b) (cherry picked from commit 59ed52d8ab9521466e9f25118336b9e9c42d2344)
via aaa0321 WHATSNEW: Start to add changes since 3.6.0pre1.
from 4b0054c s3: Fix Coverity ID 2472, UNINIT
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-stable
- Log -----------------------------------------------------------------
commit 567a3e7800813c14621e2b3342ae769fd12e0ca9
Author: Karolin Seeger <kseeger at samba.org>
Date: Tue Apr 12 15:55:07 2011 +0200
WHATSNEW: Update release notes.
Karolin
(cherry picked from commit 21b0bc2449ca30c3ad5570c794b4f56cd243996d)
commit fb688a4e0813b79403cd39f0ad267481b3706faa
Author: Karolin Seeger <kseeger at samba.org>
Date: Tue Apr 12 14:50:30 2011 +0200
WHATSNEW: Update release notes.
I know that it's not 100% complete, but I think it's good
enough to ship (that's even better than delaying again).
Karolin
(cherry picked from commit d4a25642fc1c26245c297c60356fe923fe2a316e)
commit b21df62eaa5265c4f393f199c9555dab6ea637ff
Author: Michael Adam <obnox at samba.org>
Date: Tue Apr 12 14:55:09 2011 +0200
s3:WHATSNEW: mention Gregor's "net idmap check" tool
(cherry picked from commit 9ffc2a90167518fd9de43bf801170012d0842b74)
commit 2351175407330181d67ab8b94183d6d07aba57cc
Author: Volker Lendecke <vl at samba.org>
Date: Sat Feb 26 17:53:16 2011 +0100
s3: Retry the join with the short name
Signed-off-by: Günther Deschner <gd at samba.org>
(cherry picked from commit feb3cdee366a439e8526f439714c9068068cdaa4)
(cherry picked from commit 710988c69c98736aeab1174dbf46b5ab3d053d33)
commit 2c52829a1d1051b3b36a296fc830c8594716c055
Author: Volker Lendecke <vl at samba.org>
Date: Sat Feb 26 18:12:32 2011 +0100
s3: Initialize output in libnet_Join
Signed-off-by: Günther Deschner <gd at samba.org>
(cherry picked from commit da5e5a6a83a6dcf04c51497f8b5f10621d7b47f7)
(cherry picked from commit 691299cc72ca5897cae7f130c518e5ddc1ebeb40)
commit ac1d618a94a7f64266f17f7c5c68ac7211961774
Author: Volker Lendecke <vl at samba.org>
Date: Sat Feb 26 18:12:49 2011 +0100
s3: For net ads join, create a krb5.conf
Signed-off-by: Günther Deschner <gd at samba.org>
Autobuild-User: Günther Deschner <gd at samba.org>
Autobuild-Date: Tue Apr 12 14:10:05 CEST 2011 on sn-devel-104
(cherry picked from commit 4edc98eb9e18eff00bb5ce9bdcdffa5b11149dd4)
(cherry picked from commit 4787c32934d885bd0084359a28c33b30bb523124)
commit 9a267fcd66fca6848cc3023e99d45b060b090410
Author: Günther Deschner <gd at samba.org>
Date: Sat Apr 2 01:00:52 2011 +0200
s3-util: separate out cmdline helpers.
Guenther
Autobuild-User: Günther Deschner <gd at samba.org>
Autobuild-Date: Tue Apr 12 13:06:27 CEST 2011 on sn-devel-104
(cherry picked from commit 7de5b2002d853947bc66fa4dc96773a788dc5248)
commit d201aa13ed21d98b00ba1fd3829515184dcae597
Author: Günther Deschner <gd at samba.org>
Date: Wed Apr 6 15:16:53 2011 +0200
s3: add some forward declarations.
Guenther
(cherry picked from commit 9c6f78aae195c286818f91405b983b127ae17402)
(cherry picked from commit 897ccdcae91ff4b3a61e6349dd0f7b8ed1ec6fac)
commit ac54b9420940d8ffa7505b7e930ae04ef066be8a
Author: Günther Deschner <gd at samba.org>
Date: Wed Apr 6 14:40:50 2011 +0200
s3-netapi: use dcerpc_try_samr_connects().
Guenther
(cherry picked from commit 7ea03840fc817b21d7d333aebc6bbaeded9a0485)
(cherry picked from commit 3904e1dbe459ed660201204dcea350982aa0401a)
commit 27a715d041f0c663fe8a480c1c1e2792fedbe37f
Author: Günther Deschner <gd at samba.org>
Date: Wed Apr 6 14:35:24 2011 +0200
s3-netapi: use libnetapi_get_binding_handle().
Guenther
(cherry picked from commit 3acd6bde58ecd68faf8200268cc674a71c57778d)
(cherry picked from commit 1256f75645753830a396d25fdd968843ac58ce0f)
commit 9b75978fa4aa8758c9b927247006e98a41b198e3
Author: Günther Deschner <gd at samba.org>
Date: Wed Apr 6 14:21:30 2011 +0200
s3-netapi: add libnetapi_get_binding_handle().
Guenther
(cherry picked from commit 0eece6202c94fdd180f266049e1a3712b9477dc6)
(cherry picked from commit 710b40b5ac731cabb73608577af98e666b13214f)
commit dda50a9a17f83dfd45e31f7ffaea948e25c1f78b
Author: Günther Deschner <gd at samba.org>
Date: Thu Mar 31 01:01:05 2011 +0200
s3-librpc: let librpc/rpc/dcerpc.h include ndr and generated dcerpc headers.
Guenther
(cherry picked from commit f10274806196cbea8d27cc2b1f1fe5087a2ede2b)
(cherry picked from commit 7937e6c9cd112b4f47215168e52d1cbf74786732)
commit 66e896186fd485cdf004319ba3ab74bcca87d0f3
Author: Günther Deschner <gd at samba.org>
Date: Thu Mar 31 00:34:28 2011 +0200
s3-rpc_client: move rpc_cli_transport structs and protos to rpc_transport.h
Guenther
(cherry picked from commit 64b664155b16b0995af7cc87f54c613350127f9e)
(cherry picked from commit a35c24c9a47f947abc992c14c809403e6aa5aa07)
commit 8db0fa1fd0bee70d16d3b4b2e6ed40aa15c0770c
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 4 15:53:46 2011 +0200
talloc/testsuite: avoid memory leak reported by valgrind
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
Autobuild-User: Stefan Metzmacher <metze at samba.org>
Autobuild-Date: Fri Apr 8 10:15:41 CEST 2011 on sn-devel-104
(cherry picked from commit eb0e276f3a3b57405cd8cd36c74021350aba9a98)
(cherry picked from commit 6215a7bc8ef7268d6034785b4d887c40475e715e)
commit d45194d8f050e52d4dad94e11a0693b0d135d9ce
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 31 19:50:47 2011 +0200
talloc/testsuite: test more talloc_pool related things
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit f9fdef870e4c49d9e6c23ba085ba6dbd34ec5469)
(cherry picked from commit 722da3df0f59c1ba5d90b598f94bf17a950715a8)
commit c71c2116d58e3e4634b6f6f31a1c45eca08880f8
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 4 16:28:31 2011 +0200
talloc: include valgrind headers if available
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit 2146ffd764499d67e3f0576a2e78a1575cd52d9c)
(cherry picked from commit fb84f773cf7c74152caeea5d361e9604deeb353b)
commit 6a9b427c2672b9b0ab9a62574530bbeaabbd4630
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 4 15:08:20 2011 +0200
talloc: add TC_INVALIDATE_POOL marco
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit 73cc85ac903387f2c7f8ef2d948b40b57887cf17)
(cherry picked from commit 1d11631906efe7b81a237bee73925a032d5d4318)
commit 1a59ccb70bbcc2b73b0920214fe111ca3595a089
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 4 13:29:47 2011 +0200
talloc: add TC_UNDEFINE_GROW_CHUNK() marco
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit 9c9f208598d34d700bfc2ed7302b206e863a4c9b)
(cherry picked from commit 046dfa2b6807838e787cdcef5eef28f9b660e961)
commit fea8fc6e32b19ed59e36583b12f6e55b83da0192
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 4 13:28:11 2011 +0200
talloc: add TC_INVALIDATE_SHRINK_CHUNK() marco
This invalidates the unused bytes if we shrink memory.
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit 6126c3506d493cd4836a7539586b74faea8ca0b3)
(cherry picked from commit 31578b94db5f9517ee344260e83362c547511549)
commit a67532a08ed58c693b8e64722039cb4c25e75b97
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 4 11:47:57 2011 +0200
talloc: add TC_INVALIDATE_FULL_CHUNK() macro
This makes it easier to mark a talloc pointer as
invalid.
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit 4895f55f0604a1851d45c24a8a584a10170d5917)
(cherry picked from commit 81a3c26aa1af783bb3a37a0991d9962cd71fc92f)
commit df2155026a63188b269d38d2b836ca8c2083de42
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 4 16:46:21 2011 +0200
talloc: use VALGRIND_MAKE_MEM_UNDEFINED() before memmove()
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit efbb35824e3845c3cdefea328dd1bf67d0f9087d)
(cherry picked from commit a21ffe7d5b9a8ec8dae0fe5f123ba4add585821a)
commit 294425170e6d7a0f457a1f7e02873903337de1ed
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 31 16:58:46 2011 +0200
talloc: optimize talloc_free() and talloc_realloc() for talloc pools
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit 1e70439f770181ca16a0749c2164d0237d3bfd0a)
(cherry picked from commit 6fedf4bfb3251278bff8ef22a879aac8c89e75d5)
commit b6b0d0de04917c1e9f44a73e6fa4b2a1aa4398c0
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 31 16:56:18 2011 +0200
talloc: add TC_POOL_FIRST_CHUNK() macro
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit 73330f8436707b5ab46c0720ea735908948f5d27)
(cherry picked from commit cf12120f98aaab15406654e6acbaf3377a8d0c04)
commit 5bde8e25792679ddc80dcde9c59d3b2a92804f64
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 31 16:51:40 2011 +0200
talloc: add TC_POOL_SPACE_LEFT() macro
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit 13fab67995a0b836b92847536768703dac391b57)
(cherry picked from commit dbb450e2651c2b4e837eb5a2db78d702d0fcc1bf)
commit 3d21e9483ad5bf62bf5c501caf4f0435c716f530
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 31 16:55:00 2011 +0200
talloc: add TC_ALIGN16() macro
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit 4084cb723c4e14898a411fbd1cf8fa878ff290ff)
(cherry picked from commit 3947608d20d725fd56e51d1dac15b08aa2ad8267)
commit 4bd3ee3c2bab427d229e13f4925c320feb291b24
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 31 15:18:55 2011 +0200
talloc: use TC_HDR_SIZE instead of sizeof(struct talloc_chunk)
As this includes the padding to 16 bytes.
metze
Signed-off-By: Andrew Tridgell <tridge at samba.org>
(cherry picked from commit d39940113a24078bd563b0cfce4225648c632544)
(cherry picked from commit c4a4e0943139bdfb183d5000117f383878b11e5d)
commit 4e65ab091447bcdbf6253ee40629df53311cd8db
Author: Andreas Schneider <asn at samba.org>
Date: Fri Apr 1 11:55:27 2011 +0200
s3-printing: Use become_user_by_session() function.
We create a fake connection here and don't have an vuid. So work with
the session_info directly here.
Signed-off-by: Jeremy Allison <jra at samba.org>
Autobuild-User: Jeremy Allison <jra at samba.org>
Autobuild-Date: Mon Apr 11 22:56:12 CEST 2011 on sn-devel-104
(cherry picked from commit e3c3b4daa425fede17203b474fa35493afbda2a9)
(cherry picked from commit 9ac8a582e51ff6949bebeec49f9f6c2627d48fc7)
commit d328db5e82f0aa5468c3780515fed9d99e8202f5
Author: Andreas Schneider <asn at samba.org>
Date: Fri Apr 1 11:54:49 2011 +0200
s3-smbd: Added a become_user_by_session() function.
This uses the provided session_info instead of searching the user via
the vuid. This is useful to work with fake connnection you need to
create if someone connects directly to a rpc service.
Signed-off-by: Jeremy Allison <jra at samba.org>
(cherry picked from commit b137156acbf7c39c86f306100cccc65b441a3209)
(cherry picked from commit 71885207ea6453f75d383a0265c73195df048dbf)
commit 08ccde5a1e478407ecc50b00d2e4b1f87c10039e
Author: Andreas Schneider <asn at samba.org>
Date: Tue Apr 5 13:54:31 2011 +0200
s3-smbd: Added a change_to_user_by_session() function.
Signed-off-by: Jeremy Allison <jra at samba.org>
(cherry picked from commit 27cb378283f2cf072151f1c624837741f40c298a)
(cherry picked from commit fe0882c896030dad91d8fda85a4ed031c68ae1ed)
commit 6d5cdd64c2d466cf7e87c0edec20c89ec5a8602b
Author: Volker Lendecke <vl at samba.org>
Date: Sat Apr 9 18:15:12 2011 +0200
s3: Wrap creating the svcctl keys in a transaction
This makes the startup of smbd in make test much quicker and thus more reliable
(cherry picked from commit f1aa38b414e97d8687d0bebf65baa384f75301b4)
Autobuild-User: Volker Lendecke <vlendec at samba.org>
Autobuild-Date: Mon Apr 11 22:09:58 CEST 2011 on sn-devel-104
(cherry picked from commit d1ded271b6e8f8ff7f09c4830411e389d26b1b10)
(cherry picked from commit 4dc58230b1a411a207cb84251e8ffe6d14c9742e)
commit bfa5b7d380690069ec3caf7d2edec04189011fb5
Author: Volker Lendecke <vl at samba.org>
Date: Sat Apr 9 18:13:59 2011 +0200
s3: Make reg_backend_db.h includable by itself
(cherry picked from commit 6ba31d3bd29dd11b1b98859f4d8a65d9be7dac60)
(cherry picked from commit a5495e70cc5f7659ab94d8570195edf3bd41072b)
(cherry picked from commit 59ed52d8ab9521466e9f25118336b9e9c42d2344)
commit aaa03218a4ee54848bffebc01536c13857cf95ed
Author: Karolin Seeger <kseeger at samba.org>
Date: Mon Apr 11 21:56:29 2011 +0200
WHATSNEW: Start to add changes since 3.6.0pre1.
To be completed...
Karolin
(cherry picked from commit 84b726154ef5cdcb00cbfbf7bc3ae607d6857765)
-----------------------------------------------------------------------
Summary of changes:
WHATSNEW.txt | 191 +++++++++++++++-
lib/talloc/talloc.c | 338 ++++++++++++++++++++++++----
lib/talloc/testsuite.c | 57 +++++-
libcli/samsync/samsync.h | 2 +
source3/Makefile.in | 2 +-
source3/include/client.h | 56 +-----
source3/include/proto.h | 97 +++-----
source3/lib/netapi/cm.c | 23 ++
source3/lib/netapi/file.c | 27 +--
source3/lib/netapi/getdc.c | 27 +--
source3/lib/netapi/netapi_private.h | 4 +
source3/lib/netapi/netlogon.c | 18 +-
source3/lib/netapi/samr.c | 22 ++-
source3/lib/netapi/serverinfo.c | 27 +--
source3/lib/netapi/share.c | 45 ++---
source3/lib/netapi/shutdown.c | 18 +-
source3/lib/util.c | 253 ---------------------
source3/lib/util_cmdline.c | 277 +++++++++++++++++++++++
source3/libnet/libnet_join.c | 7 +
source3/librpc/rpc/dcerpc.h | 2 +
source3/printing/nt_printing.c | 6 +-
source3/registry/reg_backend_db.h | 1 +
source3/rpc_client/rpc_transport.h | 107 +++++++++
source3/rpc_client/rpc_transport_np.c | 1 +
source3/rpc_client/rpc_transport_sock.c | 1 +
source3/rpc_client/rpc_transport_tstream.c | 1 +
source3/rpc_server/svcctl/srv_svcctl_reg.c | 28 +++
source3/smbd/proto.h | 4 +
source3/smbd/uid.c | 187 +++++++++------
source3/utils/net_ads.c | 5 +
source3/winbindd/winbindd_proto.h | 2 +-
source3/wscript_build | 2 +-
32 files changed, 1232 insertions(+), 606 deletions(-)
create mode 100644 source3/lib/util_cmdline.c
create mode 100644 source3/rpc_client/rpc_transport.h
Changeset truncated at 500 lines:
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 1e6f998..3ab9324 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,10 +1,10 @@
=================================
- Release Notes for Samba 3.6.0pre1
- July 28, 2010
+ Release Notes for Samba 3.6.0pre2
+ April 12, 2010
=================================
-This is the first preview release of Samba 3.6. This is *not*
+This is the second preview release of Samba 3.6.0. This is *not*
intended for production environments and is designed for testing
purposes only. Please report any defects via the Samba bug reporting
system at https://bugzilla.samba.org/.
@@ -157,6 +157,29 @@ brought to the conciousness of the users that even the simple
id mapping is not working exactly as in Samba 3.0 versions any more.
+Endpoint Mapper
+---------------
+
+As Microsoft is more and more relying on endpoint mapper and we didn't have a
+complete implementation we decided to create an instance for Samba. The
+endpoint mapper is like a DNS server but for ports. If you want to talk to a
+certain RPC service over TCP/IP, you just ask the endpoint mapper on which
+port it is running. Then you can connect to the service and make sure that it
+is running.
+The code is deactivated by default, because it needs more testing and it
+doesn't scale yet. We will work on these limitations and hopefully release it
+with pre3. If you want to enable and test the endpoint mapper you can set
+"rpc_server:epmapper = daemon" in the smb.conf file.
+
+
+Internal restructuring
+----------------------
+
+Ongoing internal restructuring for better separation of internal subsystem to
+achieve a faster build, smaller binaries and cleaner dependencies for the samba3
+waf build.
+
+
SMB Traffic Analyzer
--------------------
@@ -207,6 +230,168 @@ smb.conf changes
winbind max clients New 200
+Commit Highlights
+-----------------
+
+o Michael Adam <obnox at samba.org>
+ * ID Mapping changes.
+
+
+o Jeremy Allison <jra at samba.org>
+ * Implement SMB2 support.
+
+
+o Stefan Metzmacher <metze at samba.org>
+ * Implement SMB2 support.
+
+
+o Andreas Schneider <asn at samba.org>
+ * Add an Endpoint Mapper daemon.
+
+
+
+Changes since 3.6.0pre1
+-----------------------
+
+o Michael Adam <obnox at samba.org>
+ * ID Mapping changes.
+ * Add "--option" to 'testparm'.
+
+
+o Jeremy Allison <jra at samba.org>
+ * BUG 7080: Quota only shown when logged as root.
+ * BUG 7863: Unlink may unlink wrong file when hardlinks are involved.
+ * BUG 7996: Sgid bit lost on folder rename.
+ * BUG 8040: Fix smbclient segfault with Cyrillic netbios names.
+ * Fix crash bug on smbd shutdown when using FOPENDIR().
+ * Ensure we don't return an incorrect access mask.
+ * Fix bug against the new Mac client.
+ * Fix leak in error path.
+ * Fix error where Windows client spoolss returns WERR_INVALID_DATA.
+
+
+o Christian Ambach <christian.ambach at de.ibm.com>
+ * Fix a segfault in the krb5 locator plugin.
+ * Enable sharesec for registry shares.
+
+
+o Andrew Bartlett <abartlet at samba.org>
+ * Fix memory leak in "security=share" and "force user".
+
+
+o Björn Baumbach <bb at sernet.de>
+ * BUG 7875: Fix 'nmbd --port'.
+ * BUG 7880: cmd_spoolss_deletedriver() returned without checking all
+ architectures.
+
+
+o Gregor Beck <gbeck at sernet.de>
+ * Add new 'net idmap check' command.
+ * Add new 'net idmap delete' command.
+ * Fix segfault on missing input file in 'net idmap restore'.
+
+
+o Olly Betts <olly at survex.com>
+ * Fix 'net usersidlist' not to skip every other user.
+
+
+o Gregor Beck <gbeck at sernet.de>
+ * Add "net idmap check", a check and repair tool for the
+ id mapping database.
+
+o Günther Deschner <gd at samba.org>
+ * BUG 7690: Retry DNS updates when connection to one nameserver has failed.
+ * BUG 7945: Let winbind try to use samlogon validation level 6.
+ * Fix Coverity ID 2041.
+ * Fix potential crash bug in spoolss_PrinterEnumValues push path.
+ * Internal restructuring.
+ * Don't wipe out all printer drivers when only one should be deleted.
+ * Fix winbindd_dual_pam_auth_samlogon() for NT4 domains.
+
+
+o David Disseldorp <ddiss at suse.de>
+ * BUG 7915: Fix cups pcap reload with no printers.
+ * BUG 8040: Fix smbclient segfault with Cyrillic netbios names.
+ * Fix memory leak in print_cups.c.
+ * Remove duplicate cups response processing code.
+ * Follow force user/group for driver IO.
+ * Initiate pcap reload from parent smbd.
+ * Reload shares after pcap cache fill.
+
+
+o Björn Jacke <bj at sernet.de>
+ * BUG 8033: Add explicit configure option whether or not to enable dmapi
+ support.
+
+
+o Volker Lendecke <vl at samba.org>
+ * BUG 7917: Fix bug in chain_reply.
+ * BUG 7940: Fall back for utimes calls.
+ * BUG 8009: Fix getting username in 'net rap session'.
+ * BUG 8010: Use jenkins hash for str_checksum.
+ * BUG 8042: Fix file creation on OS/X.
+ * Fix numerous Coverity IDs.
+ * Fix a memory leak in check_sam_security_info3.
+ * Fix a segfault in the nss wrapper when libnss_winbind.so is not loadable.
+ * Make "net sam list [users|workstations]" list only the right things.
+ * Fix a potential memleak in secrets_fetch_trusted_domain_password.
+ * Use the right credentials in check_netlogond_security.
+ * Add support for AF_NETLINK addr notifications.
+ * Fork multiple Winbind children per domain.
+ * Fix a deadlock between smbd and ctdbd.
+ * Add 'wbinfo --dc-info'.
+ * Make "nmbd socket dir" configurable.
+ * Fix a valgrind error.
+ * Fix a memleak in receive_getdc_response.
+
+
+o Nikolay Martynov <mar.kolya at gmail.com>
+ * BUG 8010: Fix inode generation so nautilus can count total dir size
+ correctly.
+
+
+o Stefan Metzmacher <metze at samba.org>
+ * BUG 7567: Fix printing from Windows 7.
+ * BUG 7899: Don't return "-1" on success in 'net rpc vampire keytab'.
+ * BUG 7944: Catch lookup_names/sids schannel errors over ncacn_ip_tcp.
+ * Don't grant SEC_STD_DELETE always to the owner of a file.
+ * Fix segfaults on addrchange errors in Winbind.
+ * Allow machine accounts as members in groupdb.
+
+
+o Jonathan Nieder <jrnieder at gmail.com>
+ * BUG 6837: Make "rlimit_max below minimum Windows limit" notification less
+ scary.
+
+
+o Andreas Schneider <asn at samba.org>
+ * Add an Endpoint Mapper daemon.
+ * Add IPv6 support for the endpoint mapper.
+ * Free unused memory in the rpc server.
+ * Fix possible segfaults in svcctl server.
+ * Fix possible segfault with client_id in rpc server.
+ * Add a 'svcctl shutdown' function to rpc server.
+ * Fix a resource leak in net_afs.
+ * Fix a resource leak in smbta-util.
+ * Fix possible resource leak in net_usershare.
+ * Fix possible resource leak in 'smbget'.
+ * Fix possible resource leak in 'smbfilter'.
+ * Fix a possible null pointer dereference in smbd.
+
+
+o Pavel Shilovsky <piastry at etersoft.ru>
+ * BUG 7928: Fix problems with "kernel oplocks" option set to "no".
+ * Ensure we send the direct levelII oplock break to the correct fid.
+
+
+o Simo Sorce <idra at samba.org>
+ * Fix private libdir and codepages paths.
+
+
+o Andrew Tridgell <tridge at samba.org>
+ * Fix a valgrind error.
+
+
######################################################################
Reporting bugs & Development Discussion
#######################################
diff --git a/lib/talloc/talloc.c b/lib/talloc/talloc.c
index c616f34..6f952dc 100644
--- a/lib/talloc/talloc.c
+++ b/lib/talloc/talloc.c
@@ -45,6 +45,15 @@
#endif
#endif
+/* Special macros that are no-ops except when run under Valgrind on
+ * x86. They've moved a little bit from valgrind 1.0.4 to 1.9.4 */
+#ifdef HAVE_VALGRIND_MEMCHECK_H
+ /* memcheck.h includes valgrind.h */
+#include <valgrind/memcheck.h>
+#elif defined(HAVE_VALGRIND_H)
+#include <valgrind.h>
+#endif
+
/* use this to force every realloc to change the pointer, to stress test
code that might not cope */
#define ALWAYS_REALLOC 0
@@ -115,6 +124,77 @@ static struct {
#define TALLOC_FILL_ENV "TALLOC_FREE_FILL"
+/*
+ * do not wipe the header, to allow the
+ * double-free logic to still work
+ */
+#define TC_INVALIDATE_FULL_FILL_CHUNK(_tc) do { \
+ if (unlikely(talloc_fill.enabled)) { \
+ size_t _flen = (_tc)->size; \
+ char *_fptr = TC_PTR_FROM_CHUNK(_tc); \
+ memset(_fptr, talloc_fill.fill_value, _flen); \
+ } \
+} while (0)
+
+#if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_NOACCESS)
+/* Mark the whole chunk as not accessable */
+#define TC_INVALIDATE_FULL_VALGRIND_CHUNK(_tc) do { \
+ size_t _flen = TC_HDR_SIZE + (_tc)->size; \
+ char *_fptr = (char *)(_tc); \
+ VALGRIND_MAKE_MEM_NOACCESS(_fptr, _flen); \
+} while(0)
+#else
+#define TC_INVALIDATE_FULL_VALGRIND_CHUNK(_tc) do { } while (0)
+#endif
+
+#define TC_INVALIDATE_FULL_CHUNK(_tc) do { \
+ TC_INVALIDATE_FULL_FILL_CHUNK(_tc); \
+ TC_INVALIDATE_FULL_VALGRIND_CHUNK(_tc); \
+} while (0)
+
+#define TC_INVALIDATE_SHRINK_FILL_CHUNK(_tc, _new_size) do { \
+ if (unlikely(talloc_fill.enabled)) { \
+ size_t _flen = (_tc)->size - (_new_size); \
+ char *_fptr = TC_PTR_FROM_CHUNK(_tc); \
+ _fptr += (_new_size); \
+ memset(_fptr, talloc_fill.fill_value, _flen); \
+ } \
+} while (0)
+
+#if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_NOACCESS)
+/* Mark the unused bytes not accessable */
+#define TC_INVALIDATE_SHRINK_VALGRIND_CHUNK(_tc, _new_size) do { \
+ size_t _flen = (_tc)->size - (_new_size); \
+ char *_fptr = TC_PTR_FROM_CHUNK(_tc); \
+ _fptr += (_new_size); \
+ VALGRIND_MAKE_MEM_NOACCESS(_fptr, _flen); \
+} while (0)
+#else
+#define TC_INVALIDATE_SHRINK_VALGRIND_CHUNK(_tc, _new_size) do { } while (0)
+#endif
+
+#define TC_INVALIDATE_SHRINK_CHUNK(_tc, _new_size) do { \
+ TC_INVALIDATE_SHRINK_FILL_CHUNK(_tc, _new_size); \
+ TC_INVALIDATE_SHRINK_VALGRIND_CHUNK(_tc, _new_size); \
+} while (0)
+
+#if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_UNDEFINED)
+/* Mark the new bytes as undefined */
+#define TC_UNDEFINE_GROW_VALGRIND_CHUNK(_tc, _new_size) do { \
+ size_t _old_used = TC_HDR_SIZE + (_tc)->size; \
+ size_t _new_used = TC_HDR_SIZE + (_new_size); \
+ size_t _flen = _new_used - _old_used; \
+ char *_fptr = _old_used + (char *)(_tc); \
+ VALGRIND_MAKE_MEM_UNDEFINED(_fptr, _flen); \
+} while (0)
+#else
+#define TC_UNDEFINE_GROW_VALGRIND_CHUNK(_tc, _new_size) do { } while (0)
+#endif
+
+#define TC_UNDEFINE_GROW_CHUNK(_tc, _new_size) do { \
+ TC_UNDEFINE_GROW_VALGRIND_CHUNK(_tc, _new_size); \
+} while (0)
+
struct talloc_reference_handle {
struct talloc_reference_handle *next, *prev;
void *ptr;
@@ -147,7 +227,8 @@ struct talloc_chunk {
};
/* 16 byte alignment seems to keep everyone happy */
-#define TC_HDR_SIZE ((sizeof(struct talloc_chunk)+15)&~15)
+#define TC_ALIGN16(s) (((s)+15)&~15)
+#define TC_HDR_SIZE TC_ALIGN16(sizeof(struct talloc_chunk))
#define TC_PTR_FROM_CHUNK(tc) ((void *)(TC_HDR_SIZE + (char*)tc))
_PUBLIC_ int talloc_version_major(void)
@@ -332,9 +413,47 @@ _PUBLIC_ const char *talloc_parent_name(const void *ptr)
#define TALLOC_POOL_HDR_SIZE 16
+#define TC_POOL_SPACE_LEFT(_pool_tc) \
+ PTR_DIFF(TC_HDR_SIZE + (_pool_tc)->size + (char *)(_pool_tc), \
+ (_pool_tc)->pool)
+
+#define TC_POOL_FIRST_CHUNK(_pool_tc) \
+ ((void *)(TC_HDR_SIZE + TALLOC_POOL_HDR_SIZE + (char *)(_pool_tc)))
+
+#define TC_POOLMEM_CHUNK_SIZE(_tc) \
+ TC_ALIGN16(TC_HDR_SIZE + (_tc)->size)
+
+#define TC_POOLMEM_NEXT_CHUNK(_tc) \
+ ((void *)(TC_POOLMEM_CHUNK_SIZE(tc) + (char*)(_tc)))
+
+/* Mark the whole remaining pool as not accessable */
+#define TC_INVALIDATE_FILL_POOL(_pool_tc) do { \
+ if (unlikely(talloc_fill.enabled)) { \
+ size_t _flen = TC_POOL_SPACE_LEFT(_pool_tc); \
+ char *_fptr = (_pool_tc)->pool; \
+ memset(_fptr, talloc_fill.fill_value, _flen); \
+ } \
+} while(0)
+
+#if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_NOACCESS)
+/* Mark the whole remaining pool as not accessable */
+#define TC_INVALIDATE_VALGRIND_POOL(_pool_tc) do { \
+ size_t _flen = TC_POOL_SPACE_LEFT(_pool_tc); \
+ char *_fptr = (_pool_tc)->pool; \
+ VALGRIND_MAKE_MEM_NOACCESS(_fptr, _flen); \
+} while(0)
+#else
+#define TC_INVALIDATE_VALGRIND_POOL(_pool_tc) do { } while (0)
+#endif
+
+#define TC_INVALIDATE_POOL(_pool_tc) do { \
+ TC_INVALIDATE_FILL_POOL(_pool_tc); \
+ TC_INVALIDATE_VALGRIND_POOL(_pool_tc); \
+} while (0)
+
static unsigned int *talloc_pool_objectcount(struct talloc_chunk *tc)
{
- return (unsigned int *)((char *)tc + sizeof(struct talloc_chunk));
+ return (unsigned int *)((char *)tc + TC_HDR_SIZE);
}
/*
@@ -364,13 +483,12 @@ static struct talloc_chunk *talloc_alloc_pool(struct talloc_chunk *parent,
return NULL;
}
- space_left = ((char *)pool_ctx + TC_HDR_SIZE + pool_ctx->size)
- - ((char *)pool_ctx->pool);
+ space_left = TC_POOL_SPACE_LEFT(pool_ctx);
/*
* Align size to 16 bytes
*/
- chunk_size = ((size + 15) & ~15);
+ chunk_size = TC_ALIGN16(size);
if (space_left < chunk_size) {
return NULL;
@@ -461,13 +579,11 @@ _PUBLIC_ void *talloc_pool(const void *context, size_t size)
tc = talloc_chunk_from_ptr(result);
tc->flags |= TALLOC_FLAG_POOL;
- tc->pool = (char *)result + TALLOC_POOL_HDR_SIZE;
+ tc->pool = TC_POOL_FIRST_CHUNK(tc);
*talloc_pool_objectcount(tc) = 1;
-#if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_NOACCESS)
- VALGRIND_MAKE_MEM_NOACCESS(tc->pool, size);
-#endif
+ TC_INVALIDATE_POOL(tc);
return result;
}
@@ -579,7 +695,7 @@ static inline int _talloc_free_internal(void *ptr, const char *location)
}
/* possibly initialised the talloc fill value */
- if (!talloc_fill.initialised) {
+ if (unlikely(!talloc_fill.initialised)) {
const char *fill = getenv(TALLOC_FILL_ENV);
if (fill != NULL) {
talloc_fill.enabled = true;
@@ -683,34 +799,49 @@ static inline int _talloc_free_internal(void *ptr, const char *location)
if (tc->flags & (TALLOC_FLAG_POOL|TALLOC_FLAG_POOLMEM)) {
struct talloc_chunk *pool;
+ void *next_tc = NULL;
unsigned int *pool_object_count;
- pool = (tc->flags & TALLOC_FLAG_POOL)
- ? tc : (struct talloc_chunk *)tc->pool;
+ if (unlikely(tc->flags & TALLOC_FLAG_POOL)) {
+ pool = tc;
+ } else {
+ pool = (struct talloc_chunk *)tc->pool;
+ next_tc = TC_POOLMEM_NEXT_CHUNK(tc);
+
+ TC_INVALIDATE_FULL_CHUNK(tc);
+ }
pool_object_count = talloc_pool_objectcount(pool);
- if (*pool_object_count == 0) {
+ if (unlikely(*pool_object_count == 0)) {
talloc_abort("Pool object count zero!");
return 0;
}
*pool_object_count -= 1;
- if (*pool_object_count == 0) {
- if (talloc_fill.enabled) {
- memset(TC_PTR_FROM_CHUNK(pool), talloc_fill.fill_value, pool->size);
- }
+ if (unlikely(*pool_object_count == 1)) {
+ /*
+ * if there is just object left in the pool
+ * it means this is the pool itself and
+ * the rest is available for new objects
+ * again.
+ */
+ pool->pool = TC_POOL_FIRST_CHUNK(pool);
+ TC_INVALIDATE_POOL(pool);
+ } else if (unlikely(*pool_object_count == 0)) {
+ TC_INVALIDATE_FULL_CHUNK(pool);
free(pool);
+ } else if (pool->pool == next_tc) {
+ /*
+ * if pool->pool still points to end of
+ * 'tc' (which is stored in the 'next_tc' variable),
+ * we can reclaim the memory of 'tc'.
+ */
+ pool->pool = tc;
}
- }
- else {
- if (talloc_fill.enabled) {
- /* don't wipe the header, to allow the
- double-free logic to still work
- */
- memset(TC_PTR_FROM_CHUNK(tc), talloc_fill.fill_value, tc->size);
- }
+ } else {
+ TC_INVALIDATE_FULL_CHUNK(tc);
free(tc);
}
return 0;
@@ -1108,15 +1239,6 @@ _PUBLIC_ void talloc_free_children(void *ptr)
_talloc_steal_internal(new_parent, child);
}
}
-
- if ((tc->flags & TALLOC_FLAG_POOL)
- && (*talloc_pool_objectcount(tc) == 1)) {
- tc->pool = ((char *)tc + TC_HDR_SIZE + TALLOC_POOL_HDR_SIZE);
-#if defined(DEVELOPER) && defined(VALGRIND_MAKE_MEM_NOACCESS)
- VALGRIND_MAKE_MEM_NOACCESS(
- tc->pool, tc->size - TALLOC_POOL_HDR_SIZE);
-#endif
- }
}
/*
@@ -1197,6 +1319,7 @@ _PUBLIC_ void *_talloc_realloc(const void *context, void *ptr, size_t size, cons
struct talloc_chunk *tc;
void *new_ptr;
bool malloced = false;
--
Samba Shared Repository
More information about the samba-cvs
mailing list