The branch, master has been updated
       via  fe1d45cf1e9 s4:librpc: Add functions converting between bytes and 
UTF‐16 strings
       via  5f3f3c0cc3e s4:librpc: Remove trailing whitespace
       via  df19006c782 tests/krb5: Allow creating Group Managed Service 
Accounts
       via  7a9ad610226 pidl: Don’t overwrite exception set by 
PyUnicode_AsEncodedString()
       via  ddb98e7d611 pidl: Remove trailing whitespace
       via  e04f627e4f2 librpc:ndr: Fix comment
       via  204a46b712c librpc:ndr: Don’t duplicate strings needlessly
       via  e01e6202e60 librpc:ndr: Move call to convert_string_talloc() on to 
its own line
       via  2e2b80f895d librpc:ndr: Introduce common out path in 
ndr_push_string()
       via  5e580fadeed librpc:ndr: Fix error message
       via  4b03c6de54b librpc:ndr: Fix code formatting
       via  939ceb233ef util/charset: Add talloc_utf16_str[n]dup()
       via  b6ff89f6fb3 util/charset: Include missing headers
       via  3f0809f1eef util/charset: Remove unnecessary cast
      from  3f908e19a04 s4-scripting: Remove repl_cleartext_pwd.py

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit fe1d45cf1e90e9d75f3a47d65b920e2a7e472c97
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Thu Nov 16 11:20:22 2023 +1300

    s4:librpc: Add functions converting between bytes and UTF‐16 strings
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abart...@samba.org>
    Autobuild-Date(master): Thu Nov 16 06:23:35 UTC 2023 on atb-devel-224

commit 5f3f3c0cc3ef7ca5237ba1e4865259e02f41a12c
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Wed Nov 8 21:09:14 2023 +1300

    s4:librpc: Remove trailing whitespace
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit df19006c7825609c18a6e21d3920696bc0955e70
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Mon Nov 13 17:07:02 2023 +1300

    tests/krb5: Allow creating Group Managed Service Accounts
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 7a9ad610226dfbdb5e645e6fe98fd266a960e2d1
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Wed Nov 15 12:10:36 2023 +1300

    pidl: Don’t overwrite exception set by PyUnicode_AsEncodedString()
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit ddb98e7d611f7c3160af4ea54bb6cf6bdf1ad0a3
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Thu Nov 9 14:08:19 2023 +1300

    pidl: Remove trailing whitespace
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit e04f627e4f2c6b2a2501634fd212e2527f4e0891
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Wed Nov 15 15:07:53 2023 +1300

    librpc:ndr: Fix comment
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 204a46b712cb025d2462b7e4319c04d451e2d550
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Thu Nov 16 10:15:36 2023 +1300

    librpc:ndr: Don’t duplicate strings needlessly
    
    If the source string doesn’t need to be converted, there’s no reason for
    it to be talloc‐allocated.
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit e01e6202e606476066231b0b84903c604db07a6e
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Thu Nov 16 14:50:58 2023 +1300

    librpc:ndr: Move call to convert_string_talloc() on to its own line
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 2e2b80f895dbe436290321074464b54f2943640f
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Thu Nov 16 10:22:26 2023 +1300

    librpc:ndr: Introduce common out path in ndr_push_string()
    
    This ensures that ‘dest’ gets freed on failure.
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 5e580fadeed52ab723c1f6252dd4a49d0824a229
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Mon Nov 13 17:04:34 2023 +1300

    librpc:ndr: Fix error message
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 4b03c6de54bfe7773ea97bf6707c6144433acf11
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Thu Nov 16 10:43:12 2023 +1300

    librpc:ndr: Fix code formatting
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 939ceb233ef94a0d2d45da39076ba3e78665c776
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Thu Nov 16 11:10:28 2023 +1300

    util/charset: Add talloc_utf16_str[n]dup()
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit b6ff89f6fb32a74365cc7116beb1ef949aaae021
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Wed Nov 15 15:26:56 2023 +1300

    util/charset: Include missing headers
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 3f0809f1eef116454584a84b270a1fd7feeebe64
Author: Joseph Sutton <josephsut...@catalyst.net.nz>
Date:   Mon Nov 13 12:21:20 2023 +1300

    util/charset: Remove unnecessary cast
    
    Signed-off-by: Joseph Sutton <josephsut...@catalyst.net.nz>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

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

Summary of changes:
 lib/util/charset/charset.h               |   6 ++
 lib/util/charset/convert_string.c        |   2 +-
 lib/util/charset/util_unistr.c           |  44 ++++++++++
 librpc/ndr/ndr_string.c                  | 129 +++++++++++++++++++----------
 pidl/lib/Parse/Pidl/NDR.pm               |  82 +++++++++----------
 pidl/lib/Parse/Pidl/Samba4/Header.pm     |   2 +-
 pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 134 +++++++++++++++----------------
 pidl/lib/Parse/Pidl/Samba4/Python.pm     |   1 -
 pidl/lib/Parse/Pidl/Typelist.pm          |   8 +-
 python/samba/tests/krb5/kdc_base_test.py |  25 ++++--
 source4/librpc/rpc/pyrpc_util.c          |  49 ++++++++++-
 source4/librpc/rpc/pyrpc_util.h          |   4 +
 12 files changed, 319 insertions(+), 167 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/util/charset/charset.h b/lib/util/charset/charset.h
index 195655ba1e5..aa691734713 100644
--- a/lib/util/charset/charset.h
+++ b/lib/util/charset/charset.h
@@ -26,6 +26,8 @@
 #define __CHARSET_H__
 
 #include <talloc.h>
+#include <stdbool.h>
+#include <stdint.h>
 
 /* this defines the charset types used in samba */
 typedef enum {
@@ -127,6 +129,10 @@ limited by 'n' bytes
 **/
 size_t utf16_null_terminated_len_n(const void *src, size_t n);
 
+uint16_t *talloc_utf16_strlendup(TALLOC_CTX *mem_ctx, const char *str, size_t 
len);
+uint16_t *talloc_utf16_strdup(TALLOC_CTX *mem_ctx, const char *str);
+uint16_t *talloc_utf16_strndup(TALLOC_CTX *mem_ctx, const char *str, size_t n);
+
 char *strchr_m(const char *s, char c);
 /**
  * Calculate the number of units (8 or 16-bit, depending on the
diff --git a/lib/util/charset/convert_string.c 
b/lib/util/charset/convert_string.c
index 9fa721b6d12..859b002ecbc 100644
--- a/lib/util/charset/convert_string.c
+++ b/lib/util/charset/convert_string.c
@@ -354,7 +354,7 @@ bool convert_string_talloc_handle(TALLOC_CTX *ctx, struct 
smb_iconv_handle *ic,
        const char *inbuf = NULL;
        char *outbuf = NULL, *ob = NULL;
        smb_iconv_t descriptor;
-       void **dest = (void **)dst;
+       void **dest = dst;
 
        *dest = NULL;
        if (converted_size != NULL) {
diff --git a/lib/util/charset/util_unistr.c b/lib/util/charset/util_unistr.c
index 7d8ff68074b..54b7b939b1b 100644
--- a/lib/util/charset/util_unistr.c
+++ b/lib/util/charset/util_unistr.c
@@ -243,6 +243,50 @@ size_t utf16_null_terminated_len_n(const void *src, size_t 
n)
        return len;
 }
 
+uint16_t *talloc_utf16_strlendup(TALLOC_CTX *mem_ctx, const char *str, size_t 
len)
+{
+       uint16_t *new_str = NULL;
+
+       /* Check for overflow. */
+       if (len > SIZE_MAX - 2) {
+               return NULL;
+       }
+
+       /*
+        * Allocate the new string, including space for the
+        * UTF‐16 null terminator.
+        */
+       new_str = talloc_size(mem_ctx, len + 2);
+       if (new_str == NULL) {
+               return NULL;
+       }
+
+       memcpy(new_str, str, len);
+
+       {
+               /*
+                * Ensure that the UTF‐16 string is
+                * null‐terminated.
+                */
+
+               char *new_bytes = (char *)new_str;
+
+               new_bytes[len] = '\0';
+               new_bytes[len + 1] = '\0';
+       }
+
+       return new_str;
+}
+
+uint16_t *talloc_utf16_strdup(TALLOC_CTX *mem_ctx, const char *str)
+{
+       return talloc_utf16_strlendup(mem_ctx, str, utf16_len(str));
+}
+
+uint16_t *talloc_utf16_strndup(TALLOC_CTX *mem_ctx, const char *str, size_t n)
+{
+       return talloc_utf16_strlendup(mem_ctx, str, utf16_len_n(str, n));
+}
 
 /**
  * Determine the length and validity of a utf-8 string.
diff --git a/librpc/ndr/ndr_string.c b/librpc/ndr/ndr_string.c
index 1f7bfff2e71..80054fa9be6 100644
--- a/librpc/ndr/ndr_string.c
+++ b/librpc/ndr/ndr_string.c
@@ -138,7 +138,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull 
*ndr, ndr_flags_type
 
        case LIBNDR_FLAG_STR_NULLTERM:
                /*
-                * We ensure that conv_str_len cannot return 0 by
+                * We ensure that conv_src_len cannot equal 0 by
                 * requiring that there be enough bytes for at least
                 * the NULL terminator
                 */
@@ -185,10 +185,10 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct 
ndr_pull *ndr, ndr_flags_type
                        }
                        converted_size = MIN(strlen(as)+1, conv_src_len);
                } else if (!convert_string_talloc(ndr->current_mem_ctx, chset,
-                                          CH_UNIX, ndr->data + ndr->offset,
-                                          conv_src_len * byte_mul,
-                                          &as,
-                                          &converted_size)) {
+                                                 CH_UNIX, ndr->data + 
ndr->offset,
+                                                 conv_src_len * byte_mul,
+                                                 &as,
+                                                 &converted_size)) {
                        return ndr_pull_error(ndr, NDR_ERR_CHARCNV,
                                              "Bad character conversion with 
flags 0x%"PRI_LIBNDR_FLAGS, flags);
                }
@@ -234,7 +234,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull 
*ndr, ndr_flags_type
                        }
                }
                if (converted_size > 0 && as[converted_size-1] != '\0') {
-                       DEBUG(6,("long string '%s', send without NULL 
termination (which was expected)\n", as));
+                       DEBUG(6,("long string '%s', sent without NULL 
termination (which was expected)\n", as));
                }
        }
 
@@ -255,7 +255,10 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct ndr_push 
*ndr, ndr_flags_type
        int do_convert = 1, chset = CH_UTF16;
        libndr_flags flags = ndr->flags;
        unsigned byte_mul = 2;
-       uint8_t *dest = NULL;
+       const uint8_t *dest = NULL;
+       uint8_t *dest_to_free = NULL;
+       static const uint8_t null_byte[] = {0};
+       enum ndr_err_code ndr_err = NDR_ERR_SUCCESS;
 
        if (!(ndr_flags & NDR_SCALARS)) {
                return NDR_ERR_SUCCESS;
@@ -306,23 +309,21 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct 
ndr_push *ndr, ndr_flags_type
 
        if (s_len == 0) {
                d_len = 0;
-               dest = (uint8_t *)talloc_strdup(ndr, "");
-               if (dest == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_ALLOC,
-                                             "Failed to talloc_strdup() in 
ndr_string_push()");
-               }
+               dest = null_byte;
        } else if (!do_convert) {
                d_len = s_len;
-               dest = (uint8_t *)talloc_strndup(ndr, s, s_len);
-               if (dest == NULL) {
-                       return ndr_push_error(ndr, NDR_ERR_ALLOC,
-                                             "Failed to talloc_strndup() in 
ndr_string_push()");
+               dest = (const uint8_t *)s;
+       } else {
+               bool ok;
+
+               ok = convert_string_talloc(ndr, CH_UNIX, chset, s, s_len,
+                                          &dest_to_free, &d_len);
+               if (!ok) {
+                       return ndr_push_error(ndr, NDR_ERR_CHARCNV,
+                                             "Bad character push conversion 
with flags 0x%"PRI_LIBNDR_FLAGS, flags);
                }
-       } else if (!convert_string_talloc(ndr, CH_UNIX, chset, s, s_len,
-                                         &dest, &d_len))
-       {
-               return ndr_push_error(ndr, NDR_ERR_CHARCNV,
-                                     "Bad character push conversion with flags 
0x%"PRI_LIBNDR_FLAGS, flags);
+
+               dest = dest_to_free;
        }
 
        if (flags & LIBNDR_FLAG_STR_BYTESIZE) {
@@ -338,48 +339,88 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct 
ndr_push *ndr, ndr_flags_type
        switch (flags & LIBNDR_STRING_FLAGS) {
        case LIBNDR_FLAG_STR_LEN4|LIBNDR_FLAG_STR_SIZE4:
        case LIBNDR_FLAG_STR_LEN4|LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_NOTERM:
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, c_len));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, c_len));
-               NDR_CHECK(ndr_push_bytes(ndr, dest, d_len));
+               ndr_err = ndr_push_uint32(ndr, NDR_SCALARS, c_len);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
+               ndr_err = ndr_push_uint32(ndr, NDR_SCALARS, 0);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
+               ndr_err = ndr_push_uint32(ndr, NDR_SCALARS, c_len);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
+               ndr_err = ndr_push_bytes(ndr, dest, d_len);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
                break;
 
        case LIBNDR_FLAG_STR_LEN4:
        case LIBNDR_FLAG_STR_LEN4|LIBNDR_FLAG_STR_NOTERM:
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, c_len));
-               NDR_CHECK(ndr_push_bytes(ndr, dest, d_len));
+               ndr_err = ndr_push_uint32(ndr, NDR_SCALARS, 0);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
+               ndr_err = ndr_push_uint32(ndr, NDR_SCALARS, c_len);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
+               ndr_err = ndr_push_bytes(ndr, dest, d_len);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
                break;
 
        case LIBNDR_FLAG_STR_SIZE4:
        case LIBNDR_FLAG_STR_SIZE4|LIBNDR_FLAG_STR_NOTERM:
-               NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, c_len));
-               NDR_CHECK(ndr_push_bytes(ndr, dest, d_len));
+               ndr_err = ndr_push_uint32(ndr, NDR_SCALARS, c_len);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
+               ndr_err = ndr_push_bytes(ndr, dest, d_len);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
                break;
 
        case LIBNDR_FLAG_STR_SIZE2:
        case LIBNDR_FLAG_STR_SIZE2|LIBNDR_FLAG_STR_NOTERM:
-               NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, c_len));
-               NDR_CHECK(ndr_push_bytes(ndr, dest, d_len));
+               ndr_err = ndr_push_uint16(ndr, NDR_SCALARS, c_len);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
+               ndr_err = ndr_push_bytes(ndr, dest, d_len);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
                break;
 
        case LIBNDR_FLAG_STR_NULLTERM:
-               NDR_CHECK(ndr_push_bytes(ndr, dest, d_len));
+               ndr_err = ndr_push_bytes(ndr, dest, d_len);
+               if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                       goto out;
+               }
                break;
 
        default:
                if (ndr->flags & LIBNDR_FLAG_REMAINING) {
-                       NDR_CHECK(ndr_push_bytes(ndr, dest, d_len));
+                       ndr_err = ndr_push_bytes(ndr, dest, d_len);
+                       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+                               goto out;
+                       }
                        break;
                }
 
-               return ndr_push_error(ndr, NDR_ERR_STRING, "Bad string flags 
0x%"PRI_LIBNDR_FLAGS"\n",
-                                     ndr->flags & LIBNDR_STRING_FLAGS);
+               ndr_err = ndr_push_error(ndr, NDR_ERR_STRING, "Bad string flags 
0x%"PRI_LIBNDR_FLAGS"\n",
+                                        ndr->flags & LIBNDR_STRING_FLAGS);
+               goto out;
        }
 
-       talloc_free(dest);
-
-       return NDR_ERR_SUCCESS;
+out:
+       talloc_free(dest_to_free);
+       return ndr_err;
 }
 
 /**
@@ -753,11 +794,11 @@ _PUBLIC_ enum ndr_err_code 
ndr_check_string_terminator(struct ndr_pull *ndr, uin
        NDR_PULL_NEED_BYTES(ndr, element_size);
 
        for (i = 0; i < element_size; i++) {
-                if (ndr->data[ndr->offset+i] != 0) {
+               if (ndr->data[ndr->offset+i] != 0) {
                        ndr->offset = save_offset;
 
                        return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "String 
terminator not present or outside string boundaries");
-                }
+               }
        }
 
        ndr->offset = save_offset;
@@ -865,10 +906,10 @@ _PUBLIC_ enum ndr_err_code ndr_push_charset(struct 
ndr_push *ndr, ndr_flags_type
                }
 
                if (!convert_string(CH_UNIX, chset,
-                            var, strlen(var),
-                            ndr->data+ndr->offset, required, &size)) {
+                                   var, strlen(var),
+                                   ndr->data+ndr->offset, required, &size)) {
                        return ndr_push_error(ndr, NDR_ERR_CHARCNV,
-                                     "Bad character conversion");
+                                             "Bad character conversion");
                }
 
                /* Make sure the remaining part of the string is filled with 
zeroes */
diff --git a/pidl/lib/Parse/Pidl/NDR.pm b/pidl/lib/Parse/Pidl/NDR.pm
index 48fc2cb20c8..1f95cdfd739 100644
--- a/pidl/lib/Parse/Pidl/NDR.pm
+++ b/pidl/lib/Parse/Pidl/NDR.pm
@@ -198,7 +198,7 @@ sub GetElementLevelTable($$$)
                                $length = $size;
                        }
 
-                       if ($e == $e->{PARENT}->{ELEMENTS}[-1] 
+                       if ($e == $e->{PARENT}->{ELEMENTS}[-1]
                                and $e->{PARENT}->{TYPE} ne "FUNCTION") {
                                $is_surrounding = 1;
                        }
@@ -257,7 +257,7 @@ sub GetElementLevelTable($$$)
                        $pt = $pointer_default;
                }
 
-               push (@$order, { 
+               push (@$order, {
                        TYPE => "POINTER",
                        POINTER_TYPE => $pt,
                        POINTER_INDEX => $pointer_idx,
@@ -265,13 +265,13 @@ sub GetElementLevelTable($$$)
                        LEVEL => $level
                });
 
-               warning($e, "top-level \[out\] pointer `$e->{NAME}' is not a 
\[ref\] pointer") 
+               warning($e, "top-level \[out\] pointer `$e->{NAME}' is not a 
\[ref\] pointer")
                        if ($i == 1 and $pt ne "ref" and
-                               $e->{PARENT}->{TYPE} eq "FUNCTION" and 
+                               $e->{PARENT}->{TYPE} eq "FUNCTION" and
                                not has_property($e, "in"));
 
                $pointer_idx++;
-               
+
                # everything that follows will be deferred
                $is_deferred = 1 if ($level ne "TOP");
 
@@ -288,9 +288,9 @@ sub GetElementLevelTable($$$)
                                $array_length = $array_size;
                                $is_varying =0;
                        }
-               } 
-               
-               if (scalar(@size_is) == 0 and has_property($e, "string") and 
+               }
+
+               if (scalar(@size_is) == 0 and has_property($e, "string") and
                    $i == $e->{POINTERS}) {
                        $is_string = 1;
                        $is_varying = $is_conformant = has_property($e, 
"noheader")?0:1;
@@ -312,7 +312,7 @@ sub GetElementLevelTable($$$)
                        });
 
                        $is_deferred = 0;
-               } 
+               }
        }
 
        if ($is_pipe) {
@@ -331,10 +331,10 @@ sub GetElementLevelTable($$$)
        if (defined(has_property($e, "subcontext"))) {
                my $hdr_size = has_property($e, "subcontext");
                my $subsize = has_property($e, "subcontext_size");
-               if (not defined($subsize)) { 
-                       $subsize = -1; 
+               if (not defined($subsize)) {
+                       $subsize = -1;
                }
-               
+
                push (@$order, {
                        TYPE => "SUBCONTEXT",
                        HEADER_SIZE => $hdr_size,
@@ -346,7 +346,7 @@ sub GetElementLevelTable($$$)
 
        if (my $switch = has_property($e, "switch_is")) {
                push (@$order, {
-                       TYPE => "SWITCH", 
+                       TYPE => "SWITCH",
                        SWITCH_IS => $switch,
                        IS_DEFERRED => $is_deferred
                });
@@ -395,7 +395,7 @@ sub GetTypedefLevelTable($$$$)
 }
 
 #####################################################################
-# see if a type contains any deferred data 
+# see if a type contains any deferred data
 sub can_contain_deferred
 {
        sub can_contain_deferred;
@@ -438,7 +438,7 @@ sub pointer_type($)
        my $e = shift;
 
        return undef unless $e->{POINTERS};
-       
+
        return "ref" if (has_property($e, "ref"));
        return "full" if (has_property($e, "ptr"));
        return "sptr" if (has_property($e, "sptr"));
@@ -464,7 +464,7 @@ sub find_largest_alignment
                        # the NDR layer translates this into
                        # an alignment of 4 for NDR and 8 for NDR64
                        $a = 5;
-               } elsif (has_property($e, "subcontext")) { 
+               } elsif (has_property($e, "subcontext")) {
                        $a = 1;
                } elsif (has_property($e, "transmit_as")) {
                        $a = align_type($e->{PROPERTIES}->{transmit_as},
@@ -497,7 +497,7 @@ sub align_type
        return 0 if ($e eq "EMPTY");
 
        unless (hasType($e)) {
-           # it must be an external type - all we can do is guess 
+           # it must be an external type - all we can do is guess
                # warning($e, "assuming alignment of unknown type '$e' is 4");
            return 4;
        }
@@ -592,10 +592,10 @@ sub ParseStruct($$$)
 
        CheckPointerTypes($struct, $pointer_default);
 
-       foreach my $x (@{$struct->{ELEMENTS}}) 
+       foreach my $x (@{$struct->{ELEMENTS}})
        {
                my $e = ParseElement($x, $pointer_default, $ms_union);
-               if ($x != $struct->{ELEMENTS}[-1] and 
+               if ($x != $struct->{ELEMENTS}[-1] and
                        $e->{LEVELS}[0]->{IS_SURROUNDING}) {
                        fatal($x, "conformant member not at end of struct");
                }
@@ -617,7 +617,7 @@ sub ParseStruct($$$)
        if ($struct->{NAME}) {
                $align = align_type($struct->{NAME});
        }
-               
+
        return {
                TYPE => "STRUCT",
                NAME => $struct->{NAME},
@@ -654,7 +654,7 @@ sub ParseUnion($$)
 
        CheckPointerTypes($e, $pointer_default);
 
-       foreach my $x (@{$e->{ELEMENTS}}) 
+       foreach my $x (@{$e->{ELEMENTS}})
        {
                my $t;
                if ($x->{TYPE} eq "EMPTY") {
@@ -846,7 +846,7 @@ sub ParseFunction($$$$)
        if ($d->{RETURN_TYPE} ne "void") {
                $rettype = expandAlias($d->{RETURN_TYPE});
        }
-       
+
        return {
                        NAME => $d->{NAME},
                        TYPE => "FUNCTION",
@@ -938,7 +938,7 @@ sub ParseInterface($)
 
        $version = "0.0";
 
-       if(defined $idl->{PROPERTIES}->{version}) { 
+       if(defined $idl->{PROPERTIES}->{version}) {
                my @if_version = split(/\./, $idl->{PROPERTIES}->{version});
                if ($if_version[0] == $idl->{PROPERTIES}->{version}) {
                                $version = $idl->{PROPERTIES}->{version};
@@ -954,7 +954,7 @@ sub ParseInterface($)
                @endpoints = split /,/, $idl->{PROPERTIES}->{endpoint};
        }
 
-       return { 
+       return {
                NAME => $idl->{NAME},
                UUID => lc(has_property($idl, "uuid") // ''),
                VERSION => $version,
@@ -978,7 +978,7 @@ sub Parse($)
        return undef unless (defined($idl));
 
        Parse::Pidl::NDR::Validate($idl);
-       
+
        my @ndr = ();
 
        foreach (@{$idl}) {
@@ -1050,10 +1050,10 @@ sub ContainsDeferred($$)


-- 
Samba Shared Repository

Reply via email to