[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha8-948-ged051ce

Andrew Tridgell tridge at samba.org
Wed Aug 12 00:49:42 MDT 2009


The branch, master has been updated
       via  ed051ce424a93e08f59cd65ae0abe1a8926286a3 (commit)
       via  011f103501e9465fbea56194910e082306bbf1f1 (commit)
      from  3b5c6bc971c4e5c32b19072f0f54258792d00439 (commit)

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


- Log -----------------------------------------------------------------
commit ed051ce424a93e08f59cd65ae0abe1a8926286a3
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Aug 12 15:34:03 2009 +1000

    try to give some hint as to what is causing NDR string errors

commit 011f103501e9465fbea56194910e082306bbf1f1
Author: Andrew Tridgell <tridge at samba.org>
Date:   Wed Aug 12 15:33:37 2009 +1000

    when we get an NDR error in the logs, it is useful to know where it happened

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

Summary of changes:
 librpc/ndr/libndr.h                      |    2 +-
 pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm |   10 +++++-----
 source4/librpc/ndr/ndr_string.c          |   16 ++++++++--------
 3 files changed, 14 insertions(+), 14 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/ndr/libndr.h b/librpc/ndr/libndr.h
index 7109b73..53bed01 100644
--- a/librpc/ndr/libndr.h
+++ b/librpc/ndr/libndr.h
@@ -215,7 +215,7 @@ enum ndr_compression_alg {
 
 #define NDR_PULL_NEED_BYTES(ndr, n) do { \
 	if ((n) > ndr->data_size || ndr->offset + (n) > ndr->data_size) { \
-		return ndr_pull_error(ndr, NDR_ERR_BUFSIZE, "Pull bytes %u", (unsigned)n); \
+		return ndr_pull_error(ndr, NDR_ERR_BUFSIZE, "Pull bytes %u (%s)", (unsigned)n, __location__); \
 	} \
 } while(0)
 
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
index 3e724c9..cc8085a 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
@@ -1669,7 +1669,7 @@ sub ParseUnionPushPrimitives($$$$)
 	}
 	if (! $have_default) {
 		$self->pidl("default:");
-		$self->pidl("\treturn ndr_push_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value \%u\", level);");
+		$self->pidl("\treturn ndr_push_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value \%u at \%s\", level, __location__);");
 	}
 	$self->deindent;
 	$self->pidl("}");
@@ -1705,7 +1705,7 @@ sub ParseUnionPushDeferred($$$$)
 	}
 	if (! $have_default) {
 		$self->pidl("default:");
-		$self->pidl("\treturn ndr_push_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value \%u\", level);");
+		$self->pidl("\treturn ndr_push_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value \%u at \%s\", level, __location__);");
 	}
 	$self->deindent;
 	$self->pidl("}");
@@ -1784,7 +1784,7 @@ sub ParseUnionPullPrimitives($$$$$)
 	if (defined($switch_type)) {
 		$self->pidl("NDR_CHECK(ndr_pull_$switch_type($ndr, NDR_SCALARS, &_level));");
 		$self->pidl("if (_level != level) {"); 
-		$self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value %u for $varname\", _level);");
+		$self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value %u for $varname at \%s\", _level, __location__);");
 		$self->pidl("}");
 	}
 
@@ -1814,7 +1814,7 @@ sub ParseUnionPullPrimitives($$$$$)
 	}
 	if (! $have_default) {
 		$self->pidl("default:");
-		$self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value \%u\", level);");
+		$self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value \%u at \%s\", level, __location__);");
 	}
 	$self->deindent;
 	$self->pidl("}");
@@ -1848,7 +1848,7 @@ sub ParseUnionPullDeferred($$$$)
 	}
 	if (! $have_default) {
 		$self->pidl("default:");
-		$self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value \%u\", level);");
+		$self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value \%u at \%s\", level, __location__);");
 	}
 	$self->deindent;
 	$self->pidl("}");
diff --git a/source4/librpc/ndr/ndr_string.c b/source4/librpc/ndr/ndr_string.c
index d6d9968..d4e04c1 100644
--- a/source4/librpc/ndr/ndr_string.c
+++ b/source4/librpc/ndr/ndr_string.c
@@ -87,7 +87,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
 						    (len2 + c_len_term)*byte_mul,
 						    (void **)&as, &ret, false)) {
 				return ndr_pull_error(ndr, NDR_ERR_CHARCNV, 
-						      "Bad character conversion");
+						      "Bad character conversion with flags 0x%x", flags);
 			}
 		}
 		NDR_CHECK(ndr_pull_advance(ndr, (len2 + c_len_term)*byte_mul));
@@ -124,7 +124,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
 						    (len1 + c_len_term)*byte_mul,
 						    (void **)&as, &ret, false)) {
 				return ndr_pull_error(ndr, NDR_ERR_CHARCNV, 
-						      "Bad character conversion");
+						      "Bad character conversion with flags 0x%x", flags);
 			}
 		}
 		NDR_CHECK(ndr_pull_advance(ndr, (len1 + c_len_term)*byte_mul));
@@ -162,7 +162,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
 						    (len1 + c_len_term)*byte_mul,
 						    (void **)&as, &ret, false)) {
 				return ndr_pull_error(ndr, NDR_ERR_CHARCNV, 
-						      "Bad character conversion");
+						      "Bad character conversion with flags 0x%x", flags);
 			}
 		}
 		NDR_CHECK(ndr_pull_advance(ndr, (len1 + c_len_term)*byte_mul));
@@ -196,7 +196,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
 						    (len3 + c_len_term)*byte_mul,
 						    (void **)&as, &ret, false)) {
 				return ndr_pull_error(ndr, NDR_ERR_CHARCNV, 
-						      "Bad character conversion");
+						      "Bad character conversion with flags 0x%x", flags);
 			}
 		}
 		NDR_CHECK(ndr_pull_advance(ndr, (len3 + c_len_term)*byte_mul));
@@ -228,7 +228,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
 						    len3,
 						    (void **)&as, &ret, false)) {
 				return ndr_pull_error(ndr, NDR_ERR_CHARCNV, 
-						      "Bad character conversion");
+						      "Bad character conversion with flags 0x%x", flags);
 			}
 		}
 		NDR_CHECK(ndr_pull_advance(ndr, len3));
@@ -247,7 +247,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
 					    len1,
 					    (void **)&as, &ret, false)) {
 			return ndr_pull_error(ndr, NDR_ERR_CHARCNV, 
-					      "Bad character conversion");
+					      "Bad character conversion with flags 0x%x", flags);
 		}
 		NDR_CHECK(ndr_pull_advance(ndr, len1));
 		*s = as;
@@ -272,7 +272,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_string(struct ndr_pull *ndr, int ndr_flags,
 						    len1,
 						    (void **)&as, &ret, false)) {
 				return ndr_pull_error(ndr, NDR_ERR_CHARCNV, 
-						      "Bad character conversion");
+						      "Bad character conversion with flags 0x%x", flags);
 			}
 		}
 		NDR_CHECK(ndr_pull_advance(ndr, len1));
@@ -329,7 +329,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct ndr_push *ndr, int ndr_flags,
 	}
 	if (!convert_string_talloc_convenience(ndr, ndr->iconv_convenience, CH_UNIX, chset, s, s_len, (void **)&dest, &d_len, false)) {
 		return ndr_push_error(ndr, NDR_ERR_CHARCNV, 
-				      "Bad character conversion");
+				      "Bad character push conversion with flags 0x%x", flags);
 	}
 
 	if (flags & LIBNDR_FLAG_STR_BYTESIZE) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list