[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-2986-gcc54b4d

Michael Adam obnox at samba.org
Fri Sep 5 09:57:44 GMT 2008


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 <obnox at samba.org>
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 <tridge at samba.org>
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


More information about the samba-cvs mailing list