ndr: Fix NDR push function for dnsp_string
authorAmitay Isaacs <amitay@gmail.com>
Tue, 28 Feb 2012 02:58:48 +0000 (13:58 +1100)
committerAmitay Isaacs <amitay@gmail.com>
Thu, 1 Mar 2012 13:24:49 +0000 (00:24 +1100)
Push the actual length of the string not including null-termination.

librpc/ndr/ndr_dnsp.c

index 347fbed3fd96042e3ae37ba3446d94cb44b427f8..f341c829223d750d309dafce92de1a986ab1ef20 100644 (file)
@@ -160,14 +160,13 @@ _PUBLIC_ enum ndr_err_code ndr_pull_dnsp_string(struct ndr_pull *ndr, int ndr_fl
 enum ndr_err_code ndr_push_dnsp_string(struct ndr_push *ndr, int ndr_flags, const char *string)
 {
        int total_len;
-       total_len = strlen(string) + 1;
+       total_len = strlen(string);
        if (total_len > 255) {
                return ndr_push_error(ndr, NDR_ERR_BUFSIZE,
                                      "dns_name of length %d larger than 255", total_len);
        }
        NDR_CHECK(ndr_push_uint8(ndr, ndr_flags, (uint8_t)total_len));
-       NDR_CHECK(ndr_push_bytes(ndr, (const uint8_t *)string, total_len - 1));
-       NDR_PUSH_ALIGN(ndr, 1);
+       NDR_CHECK(ndr_push_bytes(ndr, (const uint8_t *)string, total_len));
 
        return NDR_ERR_SUCCESS;
 }