The branch, v3-2-test has been updated
       via  cc54b4d74171d27e7a0b09aff0376804ac7ab69b (commit)
       via  843e9ebbf63f84270f8638a8e79538523b2148a8 (commit)
      from  cd3f4ee593e606e48cd104df222f8bda8e370a58 (commit)

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


- Log -----------------------------------------------------------------
commit cc54b4d74171d27e7a0b09aff0376804ac7ab69b
Author: Michael Adam <[EMAIL PROTECTED]>
Date:   Tue Aug 26 17:19:33 2008 +0200

    run "make idl" after after idl change "Handle arbitrary new PAC types"
    
    Michael

commit 843e9ebbf63f84270f8638a8e79538523b2148a8
Author: Andrew Tridgell <[EMAIL PROTECTED]>
Date:   Sun Aug 24 14:00:58 2008 +1000

    Handle arbitrary new PAC types
    
    When MS introduces a new PAC type, we should just ignore it, not
    generate a parse error. New PAC info structures are supposed to be
    backwards compatible with old ones
    (cherry picked from commit 2971b926c835412b02c93ad1e30f1471bc0a3612)

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

Summary of changes:
 source/librpc/gen_ndr/krb5pac.h     |    2 +-
 source/librpc/gen_ndr/ndr_krb5pac.c |   20 +++++---------------
 source/librpc/idl/krb5pac.idl       |    2 +-
 3 files changed, 7 insertions(+), 17 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/librpc/gen_ndr/krb5pac.h b/source/librpc/gen_ndr/krb5pac.h
index 2d799ea..b3b29e5 100644
--- a/source/librpc/gen_ndr/krb5pac.h
+++ b/source/librpc/gen_ndr/krb5pac.h
@@ -76,7 +76,7 @@ union PAC_INFO {
        struct PAC_SIGNATURE_DATA srv_cksum;/* [case(PAC_TYPE_SRV_CHECKSUM)] */
        struct PAC_SIGNATURE_DATA kdc_cksum;/* [case(PAC_TYPE_KDC_CHECKSUM)] */
        struct PAC_LOGON_NAME logon_name;/* [case(PAC_TYPE_LOGON_NAME)] */
-       struct DATA_BLOB_REM unknown;/* 
[subcontext(0),case(PAC_TYPE_UNKNOWN_12)] */
+       struct DATA_BLOB_REM unknown;/* [subcontext(0),default] */
 }/* [gensize,nodiscriminant,public] */;
 
 struct PAC_BUFFER {
diff --git a/source/librpc/gen_ndr/ndr_krb5pac.c 
b/source/librpc/gen_ndr/ndr_krb5pac.c
index 70d63ae..6e06f90 100644
--- a/source/librpc/gen_ndr/ndr_krb5pac.c
+++ b/source/librpc/gen_ndr/ndr_krb5pac.c
@@ -319,7 +319,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_PAC_INFO(struct 
ndr_push *ndr, int ndr_flags
                                NDR_CHECK(ndr_push_PAC_LOGON_NAME(ndr, 
NDR_SCALARS, &r->logon_name));
                        break; }
 
-                       case PAC_TYPE_UNKNOWN_12: {
+                       default: {
                                {
                                        struct ndr_push *_ndr_unknown;
                                        
NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_unknown, 0, -1));
@@ -328,8 +328,6 @@ _PUBLIC_ enum ndr_err_code ndr_push_PAC_INFO(struct 
ndr_push *ndr, int ndr_flags
                                }
                        break; }
 
-                       default:
-                               return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, 
"Bad switch value %u", level);
                }
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -348,11 +346,9 @@ _PUBLIC_ enum ndr_err_code ndr_push_PAC_INFO(struct 
ndr_push *ndr, int ndr_flags
                        case PAC_TYPE_LOGON_NAME:
                        break;
 
-                       case PAC_TYPE_UNKNOWN_12:
+                       default:
                        break;
 
-                       default:
-                               return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, 
"Bad switch value %u", level);
                }
        }
        return NDR_ERR_SUCCESS;
@@ -380,7 +376,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_PAC_INFO(struct 
ndr_pull *ndr, int ndr_flags
                                NDR_CHECK(ndr_pull_PAC_LOGON_NAME(ndr, 
NDR_SCALARS, &r->logon_name));
                        break; }
 
-                       case PAC_TYPE_UNKNOWN_12: {
+                       default: {
                                {
                                        struct ndr_pull *_ndr_unknown;
                                        
NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_unknown, 0, -1));
@@ -389,8 +385,6 @@ _PUBLIC_ enum ndr_err_code ndr_pull_PAC_INFO(struct 
ndr_pull *ndr, int ndr_flags
                                }
                        break; }
 
-                       default:
-                               return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, 
"Bad switch value %u", level);
                }
        }
        if (ndr_flags & NDR_BUFFERS) {
@@ -408,11 +402,9 @@ _PUBLIC_ enum ndr_err_code ndr_pull_PAC_INFO(struct 
ndr_pull *ndr, int ndr_flags
                        case PAC_TYPE_LOGON_NAME:
                        break;
 
-                       case PAC_TYPE_UNKNOWN_12:
+                       default:
                        break;
 
-                       default:
-                               return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, 
"Bad switch value %u", level);
                }
        }
        return NDR_ERR_SUCCESS;
@@ -440,12 +432,10 @@ _PUBLIC_ void ndr_print_PAC_INFO(struct ndr_print *ndr, 
const char *name, const
                        ndr_print_PAC_LOGON_NAME(ndr, "logon_name", 
&r->logon_name);
                break;
 
-               case PAC_TYPE_UNKNOWN_12:
+               default:
                        ndr_print_DATA_BLOB_REM(ndr, "unknown", &r->unknown);
                break;
 
-               default:
-                       ndr_print_bad_level(ndr, name, level);
        }
 }
 
diff --git a/source/librpc/idl/krb5pac.idl b/source/librpc/idl/krb5pac.idl
index 7c2f72d..c039502 100644
--- a/source/librpc/idl/krb5pac.idl
+++ b/source/librpc/idl/krb5pac.idl
@@ -70,7 +70,7 @@ interface krb5pac
                [case(PAC_TYPE_SRV_CHECKSUM)]   PAC_SIGNATURE_DATA srv_cksum;
                [case(PAC_TYPE_KDC_CHECKSUM)]   PAC_SIGNATURE_DATA kdc_cksum;
                [case(PAC_TYPE_LOGON_NAME)]     PAC_LOGON_NAME logon_name;
-               [case(PAC_TYPE_UNKNOWN_12)]     [subcontext(0)] DATA_BLOB_REM 
unknown;
+               [default]                       [subcontext(0)] DATA_BLOB_REM 
unknown;
                /* [case(PAC_TYPE_UNKNOWN_12)]  PAC_UNKNOWN_12 unknown; */
        } PAC_INFO;
 


-- 
Samba Shared Repository

Reply via email to