summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--librpc/ndr/ndr_string.c5
-rw-r--r--selftest/knownfail.d/blackbox.ndrdump1
-rw-r--r--selftest/knownfail.d/ndr_string2
3 files changed, 5 insertions, 3 deletions
diff --git a/librpc/ndr/ndr_string.c b/librpc/ndr/ndr_string.c
index b5421e99ff5..95b0366b791 100644
--- a/librpc/ndr/ndr_string.c
+++ b/librpc/ndr/ndr_string.c
@@ -236,7 +236,10 @@ _PUBLIC_ enum ndr_err_code ndr_push_string(struct ndr_push *ndr, int ndr_flags,
s_len++;
}
- if (!do_convert) {
+ if (s_len == 0) {
+ d_len = 0;
+ dest = (uint8_t *)talloc_strdup(ndr, "");
+ } else if (!do_convert) {
d_len = s_len;
dest = (uint8_t *)talloc_strndup(ndr, s, s_len);
} else if (!convert_string_talloc(ndr, CH_UNIX, chset, s, s_len,
diff --git a/selftest/knownfail.d/blackbox.ndrdump b/selftest/knownfail.d/blackbox.ndrdump
new file mode 100644
index 00000000000..8131b070b37
--- /dev/null
+++ b/selftest/knownfail.d/blackbox.ndrdump
@@ -0,0 +1 @@
+^samba.tests.blackbox.ndrdump.samba.tests.blackbox.ndrdump.NdrDumpTests.test_ndrdump_fuzzed_NULL_struct_ntlmssp_CHALLENGE_MESSAGE
diff --git a/selftest/knownfail.d/ndr_string b/selftest/knownfail.d/ndr_string
deleted file mode 100644
index f4c864eb383..00000000000
--- a/selftest/knownfail.d/ndr_string
+++ /dev/null
@@ -1,2 +0,0 @@
-^samba4.local.ndr.ndr_string.ndr_string
-^samba4.local.ndr.system.iconv.ndr_string.ndr_string