[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