[SCM] Samba Shared Repository - branch v3-5-stable updated

Karolin Seeger kseeger at samba.org
Fri Feb 19 06:33:08 MST 2010


The branch, v3-5-stable has been updated
       via  69d87ed... WHATSNEW: Update changes since 3.5.0rc2.
       via  61ca739... librpc/ndr: don't overwrite the content in ndr_push_relative_ptr2_end()
       via  527ce7e... spoolss: use ndr_push_spoolss_PrinterInfo2 hand-marshalled version (moves devmode relative pointer down to sd).
       via  a8120a0... spoolss: add spoolss_security_descriptor.
       via  d1d3171... s3: re-run make samba3-idl.
       via  c73bca1... security: make two bitmaps public.
       via  865a910... spoolss: make two bitmaps public.
       via  660b04b... spoolss: make all security descriptors and devicemodes 4 byte aligned and add missing subcontexts.
       via  5e02758... spoolss: set NDR_RELATIVE_REVERSE flag for various unions that have relative pointers.
       via  6347c2d... ndr_spoolss_buf: use LIBNDR_FLAG_NO_NDR_SIZE in NDR_SPOOLSS_SIZE_*
       via  4232f12... spoolss: use subcontext in NDR_SPOOLSS_PUSH_ENUM_OUT macro.
       via  59aebcc... libndr: fix ndr_size_* calculation with relative reverse buffers
       via  5bcb63a... libndr: for now align reverse relative pointers to 2 bytes by default.
       via  8423dc7... libndr: implement LIBNDR_RELATIVE_REVERSE handling
       via  df1d697... libndr: store a subcontext buffer size in ndr_push_subcontext_start.
       via  82dbb06... libndr: give an error when ndr_push_relative_ptr2_start()/_end() is used with the RELATIVE_REVERSE flag
       via  365c2f8... libndr: add LIBNDR_FLAG_NO_RELATIVE_REVERSE so that relative reverse processing can be disabled for single structure elements.
       via  a283e35... libndr: add LIBNDR_FLAG_RELATIVE_REVERSE flag.
       via  b677491... libndr: change subcontext buffer allocation to allocate on subcontext_start.
       via  bec6240... librpc/ndr: make ndr_push_relative_ptr2() static
       via  f2e028c... librpc/ndr_krb5pac: use ndr_push_relative_ptr2_start()/_end()
       via  19cf103... librpc/ndr_drsblobs: use ndr_push_relative_ptr2_start()/_end()
       via  9dba8fc... spoolss: fix relative pointers in ndr_push_spoolss_DriverInfo101.
       via  6c253c7... s3: re-run make full_idl.
       via  e410f72... pidl: use ndr_push_relative_ptr2_start and ndr_push_relative_ptr2_end.
       via  cfc8489... libndr: add ndr_push_relative_ptr2_start and ndr_push_relative_ptr2_end.
       via  13b11ec... Fix bug #7154 - mangling method = hash can crash storing a name not containing a '.'
       via  3f2d27f... Fix bug #7155 - valgrind Conditional jump or move depends on uninitialised value(s) error when "mangling method = hash"
       via  1bf5097... s3-docs: Remove trailing whitespaces and fix a typo.
       via  91e59bd... s3:docs: add some advice for usage of strict allocate (cherry picked from commit 37115f91aebec9c846e54790c6bcf433ae35888a) (cherry picked from commit cbf728ce617323ca866799370491a402800772c1)
       via  6982b38... tsocket/bsd: fix comment in tdgram_bsd_recvfrom_handler()
       via  994e0d0... Fix commit d07cd37b993d3c9beded20323174633b806196b5
       via  30028e3... tsocket/bsd: fix bug #7115 FreeBSD includes the UDP header in FIONREAD
       via  e73afc1... tsocket/bsd: set IPV6_V6ONLY on AF_INET6 sockets
       via  6bb4023... tsocket/bsd: fix bug #7140 autodetect ipv4 and ipv6 based on the remote address if the local address is any
       via  b7e73e6... tsocket/bsd: fix bug #7140 use calculated sa_socklen for bind() in tstream_bsd_connect_send()
       via  737b530... tsocket/bsd: fix do_bind logic for AF_INET
       via  d5caa87... socket_wrapper: also ignore AF_INET6 in swrap_setsockopt()
       via  b9cc59e... s3-modules: fix get_acl_blob in the acl_tdb VFS module.
      from  8096297... Fix bug #6557 - Do not work VFS full_audit

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-5-stable


- Log -----------------------------------------------------------------
commit 69d87ed8c1783975fe8d98b74576a7724eddfd61
Author: Karolin Seeger <kseeger at samba.org>
Date:   Fri Feb 19 13:45:32 2010 +0100

    WHATSNEW: Update changes since 3.5.0rc2.
    
    Karolin
    (cherry picked from commit 8b05660b20058bad9fc9fb2336f7d2d3b513579c)

commit 61ca739e1b51af0ab935cfa56b75f88912a55899
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Feb 19 08:11:24 2010 +0100

    librpc/ndr: don't overwrite the content in ndr_push_relative_ptr2_end()
    
    metze
    (cherry picked from commit 76aa37f653fec2d511921768381db7da661750cb)
    
    The last 24 patches address bug #6888 (REGRESSION: printing support for 64 bit
    windows clients broken).
    (cherry picked from commit b094f4954d0bef08794c5edcf102444908f1971c)

commit 527ce7ebaabb5e9f49b590a18e329a18241d6f08
Author: Günther Deschner <gd at samba.org>
Date:   Sat Feb 13 03:45:25 2010 +0100

    spoolss: use ndr_push_spoolss_PrinterInfo2 hand-marshalled version (moves devmode relative pointer down to sd).
    
    Guenther
    (cherry picked from commit 0a8011aa98ccaa81dc6ba2d30672ef4856fc31d8)
    (cherry picked from commit a2c03502df39c0ee8859895f4a80a3e48f798508)

commit a8120a076bdf619eb4b8a82a8aaeb1ce29616b64
Author: Günther Deschner <gd at samba.org>
Date:   Tue Feb 16 02:48:01 2010 +0100

    spoolss: add spoolss_security_descriptor.
    
    Guenther
    (cherry picked from commit 28817424935e5b6eaf465fe993dedc2b0a0cf177)
    (cherry picked from commit 412ff72854040d5f619e978ce65c60f50f980f2b)

commit d1d3171b08ac4b2b43f579908aa1c7197d3d5ee7
Author: Günther Deschner <gd at samba.org>
Date:   Tue Feb 9 16:47:32 2010 +0100

    s3: re-run make samba3-idl.
    
    Guenther
    (cherry picked from commit faf7ab156092a1deffec25db300f11cdedb558a1)

commit c73bca1d533683289321f109f89b3a58a5564a0e
Author: Günther Deschner <gd at samba.org>
Date:   Tue Feb 16 10:46:07 2010 +0100

    security: make two bitmaps public.
    
    Guenther
    (cherry picked from commit f10a2d773d141f67319e19b45c40101bb9cb6cf4)
    (cherry picked from commit 1623a11fbde6f00fa3d05c8d088f48e206ad63ee)

commit 865a91077eda83c7a09cd5f66317a90311c21086
Author: Günther Deschner <gd at samba.org>
Date:   Sat Feb 13 04:27:05 2010 +0100

    spoolss: make two bitmaps public.
    
    Guenther
    (cherry picked from commit 8c4ff98ea11ff06e20bea73596e9643d8194a890)
    (cherry picked from commit 63eae72f981b619dd2baf1973bc5744ccd2fca28)

commit 660b04bf88bde024c397789cceda314ab179a5d6
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 18 15:36:08 2010 +0100

    spoolss: make all security descriptors and devicemodes 4 byte aligned and add missing subcontexts.
    
    Guenther
    (cherry picked from commit 8f52957369bf8ce7591d5d9a1436ccb7e384c612)
    (cherry picked from commit ef3bd911cae625b524fa79dc28e67db1234f1eeb)

commit 5e0275822cef41ddc5e35a8bd2b50ade4b7354b3
Author: Günther Deschner <gd at samba.org>
Date:   Mon Dec 14 17:22:39 2009 +0100

    spoolss: set NDR_RELATIVE_REVERSE flag for various unions that have relative pointers.
    
    Guenther
    (cherry picked from commit 6d0a39741dacd81e33b25a91fa28cdf983d10d84)
    (cherry picked from commit 7c7917ba9cdc17c6b5d1e1e51cde714c0be6e036)

commit 6347c2dd836c54809555daefb99544ec67e4c05f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 18 15:17:42 2010 +0100

    ndr_spoolss_buf: use LIBNDR_FLAG_NO_NDR_SIZE in NDR_SPOOLSS_SIZE_*
    
    metze
    (cherry picked from commit 2059a165ee6f4d231aa4075d8ddea70b8df8944f)
    (cherry picked from commit 8343c3c28a17cf8c464c9167d453855b5a0482c1)

commit 4232f12d4e989eb64e59ecb430e4119c3034da17
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Dec 23 15:52:39 2009 +0100

    spoolss: use subcontext in NDR_SPOOLSS_PUSH_ENUM_OUT macro.
    
    metze
    (cherry picked from commit a4c3aeb79306190b09e284a6a28e3b40fbc5823b)
    (cherry picked from commit db00f017f2ab67931bf04d53df592658fde69419)

commit 59aebccd6da0d7fa009577bd6b3513550fa32709
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 18 15:13:20 2010 +0100

    libndr: fix ndr_size_* calculation with relative reverse buffers
    
    metze
    (cherry picked from commit 8310f02414efd3b792857ed20c636c4c114e1ba2)
    (cherry picked from commit 2d157eac5abcfe75968d80978c82d6b7b2b0359b)

commit 5bcb63a2d7192ae69efe49b67fd3de001c9e9d5d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Feb 18 13:40:44 2010 +0100

    libndr: for now align reverse relative pointers to 2 bytes by default.
    
    This is just a hack and we should let the callers use FLAG_ALIGN2
    explicit in future.
    
    metze
    (cherry picked from commit 4a76d29374769ba4c075b8d5767498848d2e17d6)
    (cherry picked from commit d8251b5ab5e2d1abb8c69cc6ee2fe56bd074e48d)

commit 8423dc74341d7b153131d0002aee8585af16582f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 21:24:40 2010 +0100

    libndr: implement LIBNDR_RELATIVE_REVERSE handling
    
    This is based on Guenther's initial code.
    
    metze
    (cherry picked from commit 31c7780c16651b284009874cf3da04587dc36d19)
    (cherry picked from commit 148460b4ed9dd1ecf83acace0641bab6d22f7296)

commit df1d697ac9070c4cb5a08452c271035dd3daa89f
Author: Günther Deschner <gd at samba.org>
Date:   Mon Dec 14 15:33:32 2009 +0100

    libndr: store a subcontext buffer size in ndr_push_subcontext_start.
    
    Guenther
    (cherry picked from commit 05347754ee61f06466d6d9b7f390001992f793ce)
    (cherry picked from commit b8f0d947baab823586cea518e091de55de7b5f56)

commit 82dbb0666c0361f2350eadac09886b15c904a36c
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 20:27:08 2010 +0100

    libndr: give an error when ndr_push_relative_ptr2_start()/_end() is used with the RELATIVE_REVERSE flag
    
    metze
    (cherry picked from commit b5f9c44da55abb28222441a7e064a2a25891981f)
    (cherry picked from commit 983ac75b5b1f6bb79df15340c9ea73ed9c69aee2)

commit 365c2f8531ce0bca8b20195be9fff0332d4f5434
Author: Günther Deschner <gd at samba.org>
Date:   Tue Feb 9 18:27:37 2010 +0100

    libndr: add LIBNDR_FLAG_NO_RELATIVE_REVERSE so that relative reverse processing can be disabled for single structure elements.
    
    Guenther
    (cherry picked from commit a2c34296fa6ca2ffb69cb69698a9b5f81803e8a8)
    (cherry picked from commit cc103797c60b7a2ee48d73fefd91d7f4ab6586e3)

commit a283e35f1066134bdb4896319775b7690ac6d253
Author: Günther Deschner <gd at samba.org>
Date:   Mon Dec 14 15:09:00 2009 +0100

    libndr: add LIBNDR_FLAG_RELATIVE_REVERSE flag.
    
    Guenther
    (cherry picked from commit ee13a51b0514ec3ac4ca9c532c2b101a08ec9784)
    (cherry picked from commit f7634ed1d3ca13c18e2c2a0f5f8206c3212b32c7)

commit b6774912f44d143cfabc6482ad0c1316a5749c83
Author: Günther Deschner <gd at samba.org>
Date:   Wed Dec 16 22:54:02 2009 +0100

    libndr: change subcontext buffer allocation to allocate on subcontext_start.
    
    Guenther
    (cherry picked from commit c9fa97b01774d767acfabaf1eec7a6aad1510440)
    (cherry picked from commit 07a51577816e493c04f0fa7baaf798e9455d923f)

commit bec6240702952308296b833b862ae5e93b862259
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 20:00:36 2010 +0100

    librpc/ndr: make ndr_push_relative_ptr2() static
    
    metze
    (cherry picked from commit 66fe881cfc0a0919a1d01df896ff8458436e780e)

commit f2e028c92b8e693cdae157e58f71b606621273d9
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 20:00:04 2010 +0100

    librpc/ndr_krb5pac: use ndr_push_relative_ptr2_start()/_end()
    
    metze
    (cherry picked from commit e03591111a1b9c2f05c29a7afac4641f23f455f4)
    (cherry picked from commit bdf8ae4229e16feb4547893d44805c4d04d7a9ab)

commit 19cf1033f04496cc9db839a2a005105b5317b093
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 19:59:19 2010 +0100

    librpc/ndr_drsblobs: use ndr_push_relative_ptr2_start()/_end()
    
    metze
    (cherry picked from commit b423bd2115e006f9af5d40cf5b651e03739d53a0)
    (cherry picked from commit e57719ee8395fb288ad7d544c4a2b8fbf15bc72c)

commit 9dba8fccac202fa780ad4552b3e478155836546e
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 11 18:54:31 2010 +0100

    spoolss: fix relative pointers in ndr_push_spoolss_DriverInfo101.
    
    Guenther
    (cherry picked from commit bfd6edb3e9339d602eb6514ff50c3bb6c671174e)
    (cherry picked from commit 08fd161d53b1de4d8b55b2a24bc489658805332f)

commit 6c253c741e2c5243ae02740e28f04c18701fb34d
Author: Günther Deschner <gd at samba.org>
Date:   Mon Dec 14 14:17:05 2009 +0100

    s3: re-run make full_idl.
    
    Guenther
    (cherry picked from commit c869328b1642043480f9600c88bcce9da37959b1)
    (cherry picked from commit 5edccc592e66c1ccea24b81c6a96c21fbabe746d)

commit e410f720afd4bf0f0c40b3876eff4c90ec85b3af
Author: Günther Deschner <gd at samba.org>
Date:   Mon Dec 14 14:09:22 2009 +0100

    pidl: use ndr_push_relative_ptr2_start and ndr_push_relative_ptr2_end.
    
    Guenther
    (cherry picked from commit a049d75193b284fe9efb28d303ea46ba407e5a7a)
    (cherry picked from commit b9db7b7e824a2dcbb9f501fa441392d151afc3a3)

commit cfc8489b3eef6926daca5e190aa6c32048b01054
Author: Günther Deschner <gd at samba.org>
Date:   Mon Dec 14 14:08:34 2009 +0100

    libndr: add ndr_push_relative_ptr2_start and ndr_push_relative_ptr2_end.
    
    Guenther
    (cherry picked from commit 478bf4173af63345c27e09fd2dede56d506da0af)

commit 13b11ec1cd78d9b84117d07083ca7b0ae8ddb8e8
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Feb 18 11:22:44 2010 -0800

    Fix bug #7154 - mangling method = hash can crash storing a name not containing a '.'
    
    Fix use of uninitialized variable. This can lead to crashes if
    mangling = hash processes names with no '.'.
    
    Jeremy.
    (cherry picked from commit df13b1303a751962d8f7d5298b39e4a7500fef15)
    (cherry picked from commit 7122d0e97ca9edeea28c9e898e77f576a886471e)

commit 3f2d27f7b3a4528be5dc58b4bb05201c6ffc4825
Author: Jeremy Allison <jra at samba.org>
Date:   Thu Feb 18 12:21:10 2010 -0800

    Fix bug #7155 - valgrind Conditional jump or move depends on uninitialised value(s) error when "mangling method = hash"
    
    The charset array allocated in init_chartest() is allocated
    by MALLOC, but only some elements of it being set after allocation. Fix is to
    memset to zero after allocation.
    
    Jeremy.
    (cherry picked from commit a4e8210ba7d6d471cb9f17754244393b9c1e5930)
    (cherry picked from commit fd906e77a0959189db767392981a89b5130939e2)

commit 1bf50973818166c798f0dc86e9627a9be7353aa4
Author: Karolin Seeger <kseeger at samba.org>
Date:   Thu Feb 18 13:10:21 2010 +0100

    s3-docs: Remove trailing whitespaces and fix a typo.
    
    Karolin
    (cherry picked from commit 494819773d61daa32d4ee2a0a15088f3b4abe6e2)
    (cherry picked from commit b3c5b9d7739143cc3cc7c004a73fce2969aaa6b8)

commit 91e59bde995d8f69475447aefa060686e8a2cfd1
Author: Björn Jacke <bj at sernet.de>
Date:   Wed Feb 17 23:03:32 2010 +0100

    s3:docs: add some advice for usage of strict allocate
    (cherry picked from commit 37115f91aebec9c846e54790c6bcf433ae35888a)
    (cherry picked from commit cbf728ce617323ca866799370491a402800772c1)

commit 6982b38d6ed05f4dad33bbf3116e40a257ea9b85
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 19:11:11 2010 +0100

    tsocket/bsd: fix comment in tdgram_bsd_recvfrom_handler()
    
    metze
    (cherry picked from commit c42d9c4ec410e205091784cd97cbceb5572609d8)
    (cherry picked from commit d68c7db67dc8f87be8a924d1b2b66379fc52b723)

commit 994e0d09677788eece6b936fd23679a3eadb4564
Author: Jeremy Allison <jra at samba.org>
Date:   Wed Feb 17 09:24:34 2010 -0800

    Fix commit d07cd37b993d3c9beded20323174633b806196b5
    
    Which was:
    
        tsocket/bsd: fix bug #7115 FreeBSD includes the UDP header in FIONREAD
    
    Metze, this has to have been wrong - you are throwing away the talloc_realloc
    pointer returned. Also no error checking. Please review.
    
    Thank goodness for gcc warnings :-).
    
    Jeremy.
    (cherry picked from commit 936828de71023d90aaec6c1dba84052246bbad11)
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    (cherry picked from commit ba85facc2ce212d52140086f876eb4915b40bf22)

commit 30028e3328dc450e71ac9e070ec8b9eea193800a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 13:53:02 2010 +0100

    tsocket/bsd: fix bug #7115 FreeBSD includes the UDP header in FIONREAD
    
    metze
    (cherry picked from commit d07cd37b993d3c9beded20323174633b806196b5)
    (cherry picked from commit b9e7200f933480bce20219f0294364288be3a5df)

commit e73afc1e113a751dbf9d79f79555c45fa684a907
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 09:33:18 2010 +0100

    tsocket/bsd: set IPV6_V6ONLY on AF_INET6 sockets
    
    Some system already have this as default. It's easier
    to behave the same way on all systems and handle ipv6
    and ipv4 sockets separate.
    
    metze
    (cherry picked from commit 1ffcb991a900b78c9175f6b093839fe96b1bd7d9)
    (cherry picked from commit d1dfa2e92fea3dc54771c4b1a6e3c06ee478b54f)

commit 6bb4023959da8de5637c765eff9704bcdf2a3698
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 08:49:28 2010 +0100

    tsocket/bsd: fix bug #7140 autodetect ipv4 and ipv6 based on the remote address if the local address is any
    
    metze
    (cherry picked from commit 8a0949dfc8d2ecf577dfc5ef38496421101b734e)
    (cherry picked from commit b4a5c3325a272c97658aaede1f1c659260524789)

commit b7e73e69414a53c5b4540d2fd69475e7d98cd1b5
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 08:45:58 2010 +0100

    tsocket/bsd: fix bug #7140 use calculated sa_socklen for bind() in tstream_bsd_connect_send()
    
    This is needed because, we can't use sizeof(sockaddr_storage) for AF_UNIX
    sockets. Also some platforms require exact values for AF_INET and AF_INET6.
    
    metze
    (cherry picked from commit 6637b2f4b06fcee1e8e1b1782dd96e3273f8caac)
    (cherry picked from commit c84c467be347384ab1ceb7d74147fef364678235)

commit 737b5304d1a3edc2d0a873f2d66c9682b62602b4
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 08:42:22 2010 +0100

    tsocket/bsd: fix do_bind logic for AF_INET
    
    We want the explicit bind() when we don't use the any address.
    
    metze
    (cherry picked from commit 135543b4c300e2fc31ee4165ce630644e1aef455)
    (cherry picked from commit fc63303b07b09f6d6855284f4e0080972fe424f7)

commit d5caa87009bfaa754efeccda484af8af925abf4e
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Feb 17 09:43:00 2010 +0100

    socket_wrapper: also ignore AF_INET6 in swrap_setsockopt()
    
    metze
    (cherry picked from commit 0b3e950731fe72a258a631e39ca1304d54663536)
    (cherry picked from commit 6aa09416ad5f27e3db679765657b67e54dde5fd9)

commit b9cc59ef4d30ca85e819f7bae13bccb5e3ef5b3e
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 18 02:13:07 2010 +0100

    s3-modules: fix get_acl_blob in the acl_tdb VFS module.
    
    Shuttle-reviewed by jra :)
    
    Guenther
    (cherry picked from commit 6cf10cc1020dd7ef483887caebcbd76d28572432)
    
    Fix bug #7148 (vfs_acl_tdb module uses uninitialized variable. Reading blob can
    fail.)
    (cherry picked from commit 61ea3d3f897f2b6c1b893e727f57ce079782572b)

-----------------------------------------------------------------------

Summary of changes:
 WHATSNEW.txt                                  |   17 +-
 docs-xml/smbdotconf/tuning/strictallocate.xml |   28 +-
 lib/socket_wrapper/socket_wrapper.c           |    4 +
 lib/tsocket/tsocket_bsd.c                     |  108 +-
 librpc/gen_ndr/ndr_drsblobs.c                 |   24 +-
 librpc/gen_ndr/ndr_krb5pac.c                  |    3 +-
 librpc/gen_ndr/ndr_ntlmssp.c                  |   30 +-
 librpc/gen_ndr/ndr_security.c                 |   20 +-
 librpc/gen_ndr/ndr_security.h                 |    4 +
 librpc/gen_ndr/ndr_spoolss.c                  | 3326 +++++++++++++------------
 librpc/gen_ndr/ndr_spoolss.h                  |    4 +
 librpc/gen_ndr/ndr_svcctl.c                   |   24 +-
 librpc/gen_ndr/spoolss.h                      |   39 +-
 librpc/idl/idl_types.h                        |    3 +
 librpc/idl/security.idl                       |    4 +-
 librpc/idl/spoolss.idl                        |   45 +-
 librpc/ndr/libndr.h                           |   10 +-
 librpc/ndr/ndr.c                              |  143 +-
 librpc/ndr/ndr_drsblobs.c                     |    6 +-
 librpc/ndr/ndr_krb5pac.c                      |    3 +-
 librpc/ndr/ndr_spoolss_buf.c                  |  332 +++-
 librpc/ndr/ndr_spoolss_buf.h                  |    3 +
 pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm      |    6 +-
 source3/modules/vfs_acl_tdb.c                 |    2 +-
 source3/smbd/mangle_hash.c                    |    9 +-
 25 files changed, 2542 insertions(+), 1655 deletions(-)


Changeset truncated at 500 lines:

diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index 8951071..1d99e4e 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,7 +1,7 @@
-                   =============================
-                   Release Notes for Samba 3.5.0
-			  February 16, 2010
-                   =============================
+                   ===============================
+                   Release Notes for Samba 3.5.0rc3
+			  February 19, 2010
+                   ===============================
 
 
 This is the third release candidate of Samba 3.5.  This is *not*
@@ -134,6 +134,7 @@ Changes since 3.5.0rc2
 
 
 o   Jeremy Allison <jra at samba.org>
+    * BUG 6557: Fix vfs_full_audit.
     * BUG 6876: Fix duplicate initializer in the rmdir module.
     * BUG 7063: Fix core dump on Ubuntu 8.04 64 bit.
     * BUG 7067: Fix failing of smbd to respond to a read or a write caused by
@@ -147,6 +148,9 @@ o   Jeremy Allison <jra at samba.org>
     * BUG 7104: "wide links" and "unix extensions" are incompatible.
     * BUG 7118: Fix nmbd problems with socket address.
     * BUG 7122: Fix reading of large browselist.
+    * BUG 7154: "mangling method = hash" can crash storing a name containing a '.'.
+    * BUG 7155: Valgrind Conditional jump or move depends on uninitialised
+      value(s) error when "mangling method = hash"..
 
 
 o   Steven Danneman <steven.danneman at isilon.com>
@@ -154,7 +158,9 @@ o   Steven Danneman <steven.danneman at isilon.com>
 
 
 o   Günther Deschner <gd at samba.org>
+    * BUG 6888: Fix printing with 64 bit clients.
     * BUG 7130: Fix listing of printjobs in  Windows 7.
+    * BUG 7148: Fix get_acl_blob in the acl_tdb VFS module.
 
 
 o   Björn Jacke <bj at sernet.de>
@@ -170,13 +176,16 @@ o   Jeff Layton <jlayton at redhat.com>
 o   Volker Lendecke <vl at samba.org>
     * BUG 7085: Fix an early release of the global lock that can cause data
       corruption in libtdb.
+    * BUG 7139: Owner of file not available with Kerberos.
 
 
 o   Stefan Metzmacher <metze at samba.org>
+    * BUG 6888: Fix printing with 64 bit clients.
     * BUG 7098: Fix results of 'smbclient -L' with a large browse list.
     * BUG 7116: Add pdb_ldap performance fixes.
     * BUG 7118: Add new "nmbd bind explicit broadcast" parameter.
     * BUG 7119: Support large browselist.
+    * BUG 7140: Fix IPv4/IPv6 problems.
 
 
 o   Lars Müller <lars at samba.org>
diff --git a/docs-xml/smbdotconf/tuning/strictallocate.xml b/docs-xml/smbdotconf/tuning/strictallocate.xml
index 2606f20..1855574 100644
--- a/docs-xml/smbdotconf/tuning/strictallocate.xml
+++ b/docs-xml/smbdotconf/tuning/strictallocate.xml
@@ -3,21 +3,33 @@
 				 type="boolean"
                  xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
 <description>
-    <para>This is a boolean that controls the handling of 
-    disk space allocation in the server. When this is set to <constant>yes</constant> 
+    <para>This is a boolean that controls the handling of
+    disk space allocation in the server. When this is set to <constant>yes</constant>
     the server will change from UNIX behaviour of not committing real
     disk storage blocks when a file is extended to the Windows behaviour
     of actually forcing the disk system to allocate real storage blocks
     when a file is created or extended to be a given size. In UNIX
     terminology this means that Samba will stop creating sparse files.
-    This can be slow on some systems.</para>
+    This can be slow on some systems. When you work with large files like
+    >100MB or so you may even run into problems with clients running into
+    timeouts.</para>
 
-    <para>When strict allocate is <constant>no</constant> the server does sparse
-    disk block allocation when a file is extended.</para>
+    <para>When you have an extent based filesystem it's likely that we can make
+    use of unwritten extents which allows Samba to allocate even large amounts
+    of space very fast and you will not see any timeout problems caused by
+    strict allocate. With strict allocate in use you will also get much better
+    out of quota messages in case you use quotas. Another advantage of
+    activating this setting is that it will help to reduce file
+    fragmentation.</para>
+
+    <para>To give you an idea on which filesystems this setting might currently
+    be a good option for you: XFS, ext4, btrfs, ocfs2 on Linux and JFS2 on
+    AIX support unwritten extents. On Filesystems that do not support it,
+    preallocation is probably an expensive operation where you will see reduced
+    performance and risk to let clients run into timeouts when creating large
+    files. Examples are ext3, ZFS, HFS+ and most others, so be aware if you
+    activate this setting on those filesystems.</para>
 
-    <para>Setting this to <constant>yes</constant> can help Samba return
-    out of quota messages on systems that are restricting the disk quota
-    of users.</para>
 </description>
 
 <value type="default">no</value>
diff --git a/lib/socket_wrapper/socket_wrapper.c b/lib/socket_wrapper/socket_wrapper.c
index a188cc6..9d732ee 100644
--- a/lib/socket_wrapper/socket_wrapper.c
+++ b/lib/socket_wrapper/socket_wrapper.c
@@ -1839,6 +1839,10 @@ _PUBLIC_ int swrap_setsockopt(int s, int  level,  int  optname,  const  void  *o
 	switch (si->family) {
 	case AF_INET:
 		return 0;
+#ifdef HAVE_IPV6
+	case AF_INET6:
+		return 0;
+#endif
 	default:
 		errno = ENOPROTOOPT;
 		return -1;
diff --git a/lib/tsocket/tsocket_bsd.c b/lib/tsocket/tsocket_bsd.c
index 1c1e580..201788e 100644
--- a/lib/tsocket/tsocket_bsd.c
+++ b/lib/tsocket/tsocket_bsd.c
@@ -877,10 +877,17 @@ static void tdgram_bsd_recvfrom_handler(void *private_data)
 		return;
 	}
 
-	if (ret != state->len) {
-		tevent_req_error(req, EIO);
+	/*
+	 * Some systems (FreeBSD, see bug #7115) return too much
+	 * bytes in tsocket_bsd_pending()/ioctl(fd, FIONREAD, ...),
+	 * the return value includes some IP/UDP header bytes,
+	 * while recvfrom() just returns the payload.
+	 */
+	state->buf = talloc_realloc(state, state->buf, uint8_t, ret);
+	if (tevent_req_nomem(state->buf, req)) {
 		return;
 	}
+	state->len = ret;
 
 	tevent_req_done(req);
 }
@@ -1136,6 +1143,9 @@ static int tdgram_bsd_dgram_socket(const struct tsocket_address *local,
 	int ret;
 	bool do_bind = false;
 	bool do_reuseaddr = false;
+	bool do_ipv6only = false;
+	bool is_inet = false;
+	int sa_fam = lbsda->u.sa.sa_family;
 	socklen_t sa_socklen = sizeof(lbsda->u.ss);
 
 	if (remote) {
@@ -1164,9 +1174,11 @@ static int tdgram_bsd_dgram_socket(const struct tsocket_address *local,
 			do_reuseaddr = true;
 			do_bind = true;
 		}
-		if (lbsda->u.in.sin_addr.s_addr == INADDR_ANY) {
+		if (lbsda->u.in.sin_addr.s_addr != INADDR_ANY) {
 			do_bind = true;
 		}
+		is_inet = true;
+		sa_socklen = sizeof(rbsda->u.in);
 		break;
 #ifdef HAVE_IPV6
 	case AF_INET6:
@@ -1179,6 +1191,9 @@ static int tdgram_bsd_dgram_socket(const struct tsocket_address *local,
 			   sizeof(in6addr_any)) != 0) {
 			do_bind = true;
 		}
+		is_inet = true;
+		sa_socklen = sizeof(rbsda->u.in6);
+		do_ipv6only = true;
 		break;
 #endif
 	default:
@@ -1186,7 +1201,23 @@ static int tdgram_bsd_dgram_socket(const struct tsocket_address *local,
 		return -1;
 	}
 
-	fd = socket(lbsda->u.sa.sa_family, SOCK_DGRAM, 0);
+	if (!do_bind && is_inet && rbsda) {
+		sa_fam = rbsda->u.sa.sa_family;
+		switch (sa_fam) {
+		case AF_INET:
+			sa_socklen = sizeof(rbsda->u.in);
+			do_ipv6only = false;
+			break;
+#ifdef HAVE_IPV6
+		case AF_INET6:
+			sa_socklen = sizeof(rbsda->u.in6);
+			do_ipv6only = true;
+			break;
+#endif
+		}
+	}
+
+	fd = socket(sa_fam, SOCK_DGRAM, 0);
 	if (fd < 0) {
 		return fd;
 	}
@@ -1211,6 +1242,21 @@ static int tdgram_bsd_dgram_socket(const struct tsocket_address *local,
 	bsds->fd = fd;
 	talloc_set_destructor(bsds, tdgram_bsd_destructor);
 
+#ifdef HAVE_IPV6
+	if (do_ipv6only) {
+		int val = 1;
+
+		ret = setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY,
+				 (const void *)&val, sizeof(val));
+		if (ret == -1) {
+			int saved_errno = errno;
+			talloc_free(dgram);
+			errno = saved_errno;
+			return ret;
+		}
+	}
+#endif
+
 	if (broadcast) {
 		int val = 1;
 
@@ -1248,6 +1294,12 @@ static int tdgram_bsd_dgram_socket(const struct tsocket_address *local,
 	}
 
 	if (rbsda) {
+		if (rbsda->u.sa.sa_family != sa_fam) {
+			talloc_free(dgram);
+			errno = EINVAL;
+			return -1;
+		}
+
 		ret = connect(fd, &rbsda->u.sa, sa_socklen);
 		if (ret == -1) {
 			int saved_errno = errno;
@@ -1938,6 +1990,9 @@ static struct tevent_req * tstream_bsd_connect_send(TALLOC_CTX *mem_ctx,
 	bool retry;
 	bool do_bind = false;
 	bool do_reuseaddr = false;
+	bool do_ipv6only = false;
+	bool is_inet = false;
+	int sa_fam = lbsda->u.sa.sa_family;
 	socklen_t sa_socklen = sizeof(rbsda->u.ss);
 
 	req = tevent_req_create(mem_ctx, &state,
@@ -1973,9 +2028,11 @@ static struct tevent_req * tstream_bsd_connect_send(TALLOC_CTX *mem_ctx,
 			do_reuseaddr = true;
 			do_bind = true;
 		}
-		if (lbsda->u.in.sin_addr.s_addr == INADDR_ANY) {
+		if (lbsda->u.in.sin_addr.s_addr != INADDR_ANY) {
 			do_bind = true;
 		}
+		is_inet = true;
+		sa_socklen = sizeof(rbsda->u.in);
 		break;
 #ifdef HAVE_IPV6
 	case AF_INET6:
@@ -1988,6 +2045,9 @@ static struct tevent_req * tstream_bsd_connect_send(TALLOC_CTX *mem_ctx,
 			   sizeof(in6addr_any)) != 0) {
 			do_bind = true;
 		}
+		is_inet = true;
+		sa_socklen = sizeof(rbsda->u.in6);
+		do_ipv6only = true;
 		break;
 #endif
 	default:
@@ -1995,7 +2055,23 @@ static struct tevent_req * tstream_bsd_connect_send(TALLOC_CTX *mem_ctx,
 		goto post;
 	}
 
-	state->fd = socket(lbsda->u.sa.sa_family, SOCK_STREAM, 0);
+	if (!do_bind && is_inet) {
+		sa_fam = rbsda->u.sa.sa_family;
+		switch (sa_fam) {
+		case AF_INET:
+			sa_socklen = sizeof(rbsda->u.in);
+			do_ipv6only = false;
+			break;
+#ifdef HAVE_IPV6
+		case AF_INET6:
+			sa_socklen = sizeof(rbsda->u.in6);
+			do_ipv6only = true;
+			break;
+#endif
+		}
+	}
+
+	state->fd = socket(sa_fam, SOCK_STREAM, 0);
 	if (state->fd == -1) {
 		tevent_req_error(req, errno);
 		goto post;
@@ -2007,6 +2083,19 @@ static struct tevent_req * tstream_bsd_connect_send(TALLOC_CTX *mem_ctx,
 		goto post;
 	}
 
+#ifdef HAVE_IPV6
+	if (do_ipv6only) {
+		int val = 1;
+
+		ret = setsockopt(state->fd, IPPROTO_IPV6, IPV6_V6ONLY,
+				 (const void *)&val, sizeof(val));
+		if (ret == -1) {
+			tevent_req_error(req, errno);
+			goto post;
+		}
+	}
+#endif
+
 	if (do_reuseaddr) {
 		int val = 1;
 
@@ -2019,13 +2108,18 @@ static struct tevent_req * tstream_bsd_connect_send(TALLOC_CTX *mem_ctx,
 	}
 
 	if (do_bind) {
-		ret = bind(state->fd, &lbsda->u.sa, sizeof(lbsda->u.ss));
+		ret = bind(state->fd, &lbsda->u.sa, sa_socklen);
 		if (ret == -1) {
 			tevent_req_error(req, errno);
 			goto post;
 		}
 	}
 
+	if (rbsda->u.sa.sa_family != sa_fam) {
+		tevent_req_error(req, EINVAL);
+		goto post;
+	}
+
 	ret = connect(state->fd, &rbsda->u.sa, sa_socklen);
 	err = tsocket_bsd_error_from_errno(ret, errno, &retry);
 	if (retry) {
diff --git a/librpc/gen_ndr/ndr_drsblobs.c b/librpc/gen_ndr/ndr_drsblobs.c
index 8a0842b..33ebf4c 100644
--- a/librpc/gen_ndr/ndr_drsblobs.c
+++ b/librpc/gen_ndr/ndr_drsblobs.c
@@ -534,8 +534,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_repsFromTo1(struct ndr_push *ndr, int ndr_fl
 		}
 		if (ndr_flags & NDR_BUFFERS) {
 			if (r->other_info) {
-				NDR_CHECK(ndr_push_relative_ptr2(ndr, r->other_info));
+				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->other_info));
 				NDR_CHECK(ndr_push_repsFromTo1OtherInfo(ndr, NDR_SCALARS, r->other_info));
+				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->other_info));
 			}
 		}
 		ndr->flags = _flags_save_STRUCT;
@@ -657,8 +658,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_repsFromTo2OtherInfo(struct ndr_push *ndr, i
 			uint32_t _flags_save_string = ndr->flags;
 			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
 			if (r->dns_name1) {
-				NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dns_name1));
+				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dns_name1));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dns_name1));
+				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dns_name1));
 			}
 			ndr->flags = _flags_save_string;
 		}
@@ -666,8 +668,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_repsFromTo2OtherInfo(struct ndr_push *ndr, i
 			uint32_t _flags_save_string = ndr->flags;
 			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
 			if (r->dns_name2) {
-				NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dns_name2));
+				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dns_name2));
 				NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dns_name2));
+				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dns_name2));
 			}
 			ndr->flags = _flags_save_string;
 		}
@@ -805,8 +808,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_repsFromTo2(struct ndr_push *ndr, int ndr_fl
 		}
 		if (ndr_flags & NDR_BUFFERS) {
 			if (r->other_info) {
-				NDR_CHECK(ndr_push_relative_ptr2(ndr, r->other_info));
+				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->other_info));
 				NDR_CHECK(ndr_push_repsFromTo2OtherInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->other_info));
+				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->other_info));
 			}
 		}
 		ndr->flags = _flags_save_STRUCT;
@@ -1794,13 +1798,14 @@ static enum ndr_err_code ndr_push_package_PrimaryKerberosString(struct ndr_push
 			uint32_t _flags_save_string = ndr->flags;
 			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NOTERM|LIBNDR_FLAG_REMAINING);
 			if (r->string) {
-				NDR_CHECK(ndr_push_relative_ptr2(ndr, r->string));
+				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->string));
 				{
 					struct ndr_push *_ndr_string;
 					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_string, 0, 2 * strlen_m(r->string)));
 					NDR_CHECK(ndr_push_string(_ndr_string, NDR_SCALARS, r->string));
 					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_string, 0, 2 * strlen_m(r->string)));
 				}
+				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->string));
 			}
 			ndr->flags = _flags_save_string;
 		}
@@ -1892,13 +1897,14 @@ static enum ndr_err_code ndr_push_package_PrimaryKerberosKey3(struct ndr_push *n
 			uint32_t _flags_save_DATA_BLOB = ndr->flags;
 			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
 			if (r->value) {
-				NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value));
+				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value));
 				{
 					struct ndr_push *_ndr_value;
 					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_value, 0, (r->value?r->value->length:0)));
 					NDR_CHECK(ndr_push_DATA_BLOB(_ndr_value, NDR_SCALARS, *r->value));
 					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_value, 0, (r->value?r->value->length:0)));
 				}
+				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value));
 			}
 			ndr->flags = _flags_save_DATA_BLOB;
 		}
@@ -2118,13 +2124,14 @@ static enum ndr_err_code ndr_push_package_PrimaryKerberosKey4(struct ndr_push *n
 			uint32_t _flags_save_DATA_BLOB = ndr->flags;
 			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
 			if (r->value) {
-				NDR_CHECK(ndr_push_relative_ptr2(ndr, r->value));
+				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value));
 				{
 					struct ndr_push *_ndr_value;
 					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_value, 0, (r->value?r->value->length:0)));
 					NDR_CHECK(ndr_push_DATA_BLOB(_ndr_value, NDR_SCALARS, *r->value));
 					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_value, 0, (r->value?r->value->length:0)));
 				}
+				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value));
 			}
 			ndr->flags = _flags_save_DATA_BLOB;
 		}
@@ -3001,8 +3008,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_trustCurrentPasswords(struct ndr_push *ndr,
 	if (ndr_flags & NDR_BUFFERS) {
 		for (cntr_current_0 = 0; cntr_current_0 < r->count; cntr_current_0++) {
 			if (r->current[cntr_current_0]) {
-				NDR_CHECK(ndr_push_relative_ptr2(ndr, r->current[cntr_current_0]));
+				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->current[cntr_current_0]));
 				NDR_CHECK(ndr_push_AuthenticationInformation(ndr, NDR_SCALARS, r->current[cntr_current_0]));
+				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->current[cntr_current_0]));
 			}
 		}
 	}
diff --git a/librpc/gen_ndr/ndr_krb5pac.c b/librpc/gen_ndr/ndr_krb5pac.c
index 0f4cfef..1f5ed95 100644
--- a/librpc/gen_ndr/ndr_krb5pac.c
+++ b/librpc/gen_ndr/ndr_krb5pac.c
@@ -535,13 +535,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_PAC_BUFFER_RAW(struct ndr_push *ndr, int ndr
 			uint32_t _flags_save_DATA_BLOB_REM = ndr->flags;
 			ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN8);
 			if (r->info) {
-				NDR_CHECK(ndr_push_relative_ptr2(ndr, r->info));
+				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->info));
 				{
 					struct ndr_push *_ndr_info;
 					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
 					NDR_CHECK(ndr_push_DATA_BLOB_REM(_ndr_info, NDR_SCALARS, r->info));
 					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 0, NDR_ROUND(r->ndr_size, 8)));
 				}
+				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->info));
 			}
 			ndr->flags = _flags_save_DATA_BLOB_REM;
 		}
diff --git a/librpc/gen_ndr/ndr_ntlmssp.c b/librpc/gen_ndr/ndr_ntlmssp.c
index b863826..130b8fe 100644
--- a/librpc/gen_ndr/ndr_ntlmssp.c
+++ b/librpc/gen_ndr/ndr_ntlmssp.c
@@ -286,13 +286,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_NEGOTIATE_MESSAGE(struct ndr_push *ndr, int
 			uint32_t _flags_save_string = ndr->flags;
 			ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
 			if (r->DomainName) {
-				NDR_CHECK(ndr_push_relative_ptr2(ndr, r->DomainName));
+				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->DomainName));
 				{
 					struct ndr_push *_ndr_DomainName;
 					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_DomainName, 0, strlen(r->DomainName)));
 					NDR_CHECK(ndr_push_string(_ndr_DomainName, NDR_SCALARS, r->DomainName));
 					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_DomainName, 0, strlen(r->DomainName)));
 				}
+				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->DomainName));
 			}
 			ndr->flags = _flags_save_string;
 		}
@@ -300,13 +301,14 @@ _PUBLIC_ enum ndr_err_code ndr_push_NEGOTIATE_MESSAGE(struct ndr_push *ndr, int
 			uint32_t _flags_save_string = ndr->flags;
 			ndr_set_flags(&ndr->flags, ndr_ntlmssp_negotiated_string_flags(NTLMSSP_NEGOTIATE_OEM));
 			if (r->Workstation) {
-				NDR_CHECK(ndr_push_relative_ptr2(ndr, r->Workstation));
+				NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->Workstation));
 				{
 					struct ndr_push *_ndr_Workstation;
 					NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_Workstation, 0, strlen(r->Workstation)));
 					NDR_CHECK(ndr_push_string(_ndr_Workstation, NDR_SCALARS, r->Workstation));
 					NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_Workstation, 0, strlen(r->Workstation)));
 				}
+				NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->Workstation));
 			}
 			ndr->flags = _flags_save_string;
 		}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list