Add data_blob_string_const_null() function that includes the terminating
authorJelmer Vernooij <jelmer@samba.org>
Mon, 13 Oct 2008 03:20:26 +0000 (05:20 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Mon, 13 Oct 2008 03:20:26 +0000 (05:20 +0200)
null byte and use it in Samba 3.

This matches the behaviour prior to my data_blob changes.

lib/util/data_blob.c
lib/util/data_blob.h
source3/auth/token_util.c
source3/lib/access.c
source3/lib/util_pw.c
source3/lib/util_sock.c
source3/rpc_server/srv_samr_nt.c
source3/torture/torture.c

index 1b2f05528b23a6a690213e146dcf147bced82a8e..c7d01bacc7ad1b33f05bccc24ad0adb81ab53f51 100644 (file)
@@ -182,6 +182,18 @@ _PUBLIC_ DATA_BLOB data_blob_string_const(const char *str)
        return blob;
 }
 
+/**
+  useful for constructing data blobs in test suites, while
+  avoiding const warnings
+**/
+_PUBLIC_ DATA_BLOB data_blob_string_const_null(const char *str)
+{
+       DATA_BLOB blob;
+       blob.data = discard_const_p(uint8_t, str);
+       blob.length = str ? strlen(str)+1 : 0;
+       return blob;
+}
+
 /**
  * Create a new data blob from const data 
  */
index 58c1117f1d7d4bae1ae959b2f0e8534be4ea82e9..ffde51cf33600abfb9461b3ceb3cfd79752ed48d 100644 (file)
@@ -104,6 +104,14 @@ _PUBLIC_ char *data_blob_hex_string(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob);
 **/
 _PUBLIC_ DATA_BLOB data_blob_string_const(const char *str);
 
+/**
+  useful for constructing data blobs in test suites, while
+  avoiding const warnings
+
+  includes the terminating null character (as opposed to data_blo_string_const)
+**/
+_PUBLIC_ DATA_BLOB data_blob_string_const_null(const char *str);
+
 /**
  * Create a new data blob from const data 
  */
index d6cd2ea3a8474b3de217203fb8975d21049fe016..e739fdaabe92786cc39ea050ca53f1bb40e96c99 100644 (file)
@@ -84,7 +84,7 @@ NT_USER_TOKEN *get_root_nt_token( void )
 
        cache_data = memcache_lookup_talloc(
                NULL, SINGLETON_CACHE_TALLOC,
-               data_blob_string_const("root_nt_token"));
+               data_blob_string_const_null("root_nt_token"));
 
        if (cache_data != NULL) {
                return talloc_get_type_abort(
@@ -109,7 +109,7 @@ NT_USER_TOKEN *get_root_nt_token( void )
 
        memcache_add_talloc(
                NULL, SINGLETON_CACHE_TALLOC,
-               data_blob_string_const("root_nt_token"), token);
+               data_blob_string_const_null("root_nt_token"), token);
 
        return token;
 }
index 6a445f8139c48ebdf79827712728c29a1b304152..966d8ce87c31ec977fd6232364f196c38b596b3a 100644 (file)
@@ -104,7 +104,7 @@ static bool string_match(const char *tok,const char *s)
 
                if (memcache_lookup(
                            NULL, SINGLETON_CACHE,
-                           data_blob_string_const("yp_default_domain"),
+                           data_blob_string_const_null("yp_default_domain"),
                            &tmp)) {
 
                        SMB_ASSERT(tmp.length > 0);
@@ -116,8 +116,8 @@ static bool string_match(const char *tok,const char *s)
 
                        memcache_add(
                                NULL, SINGLETON_CACHE,
-                               data_blob_string_const("yp_default_domain"),
-                               data_blob_string_const(mydomain?mydomain:""));
+                               data_blob_string_const_null("yp_default_domain"),
+                               data_blob_string_const_null(mydomain?mydomain:""));
                }
 
                if (!mydomain) {
index 428378505f7a1a1230e7499bb2d6bd0b7ee534b3..c0d37f1094b7c3c80fb88ac7c1f4f81e31bba67b 100644 (file)
@@ -47,7 +47,7 @@ struct passwd *getpwnam_alloc(TALLOC_CTX *mem_ctx, const char *name)
        struct passwd *temp, *cached;
 
        temp = (struct passwd *)memcache_lookup_talloc(
-               NULL, GETPWNAM_CACHE, data_blob_string_const(name));
+               NULL, GETPWNAM_CACHE, data_blob_string_const_null(name));
        if (temp != NULL) {
                return tcopy_passwd(mem_ctx, temp);
        }
@@ -65,7 +65,7 @@ struct passwd *getpwnam_alloc(TALLOC_CTX *mem_ctx, const char *name)
                return temp;
        }
 
-       memcache_add_talloc(NULL, GETPWNAM_CACHE, data_blob_string_const(name),
+       memcache_add_talloc(NULL, GETPWNAM_CACHE, data_blob_string_const_null(name),
                            cached);
        return tcopy_passwd(mem_ctx, temp);
 }
index e20768ed89242c0aade9714f5639f784807110e5..f3dc3fc1d1316a1d4a5b652551c9d8a0847c7bc3 100644 (file)
@@ -1706,7 +1706,7 @@ static bool lookup_nc(struct name_addr_pair *nc)
 
        if (!memcache_lookup(
                        NULL, SINGLETON_CACHE,
-                       data_blob_string_const("get_peer_name"),
+                       data_blob_string_const_null("get_peer_name"),
                        &tmp)) {
                return false;
        }
@@ -1733,7 +1733,7 @@ static void store_nc(const struct name_addr_pair *nc)
        memcpy(tmp.data+sizeof(nc->ss), nc->name, namelen+1);
 
        memcache_add(NULL, SINGLETON_CACHE,
-                       data_blob_string_const("get_peer_name"),
+                       data_blob_string_const_null("get_peer_name"),
                        tmp);
        data_blob_free(&tmp);
 }
@@ -1945,7 +1945,7 @@ const char *get_mydnsfullname(void)
        DATA_BLOB tmp;
 
        if (memcache_lookup(NULL, SINGLETON_CACHE,
-                       data_blob_string_const("get_mydnsfullname"),
+                       data_blob_string_const_null("get_mydnsfullname"),
                        &tmp)) {
                SMB_ASSERT(tmp.length > 0);
                return (const char *)tmp.data;
@@ -1989,11 +1989,11 @@ const char *get_mydnsfullname(void)
         */
 
        memcache_add(NULL, SINGLETON_CACHE,
-                       data_blob_string_const("get_mydnsfullname"),
-                       data_blob_string_const(res->ai_canonname));
+                       data_blob_string_const_null("get_mydnsfullname"),
+                       data_blob_string_const_null(res->ai_canonname));
 
        if (!memcache_lookup(NULL, SINGLETON_CACHE,
-                       data_blob_string_const("get_mydnsfullname"),
+                       data_blob_string_const_null("get_mydnsfullname"),
                        &tmp)) {
                tmp = data_blob_talloc(talloc_tos(), res->ai_canonname,
                                strlen(res->ai_canonname) + 1);
index 6455f0237496dd1f8d4ab4a9df9ae14554ab1627..d4ce34934ea18211beaffcae917b500070dd3916 100644 (file)
@@ -2437,7 +2437,7 @@ static NTSTATUS get_user_info_20(TALLOC_CTX *mem_ctx,
        if (munged_dial) {
                blob = base64_decode_data_blob(munged_dial);
        } else {
-               blob = data_blob_string_const("");
+               blob = data_blob_string_const_null("");
        }
 
        status = init_samr_parameters_string(mem_ctx, &blob, &parameters);
@@ -2546,7 +2546,7 @@ static NTSTATUS get_user_info_21(TALLOC_CTX *mem_ctx,
        if (munged_dial) {
                blob = base64_decode_data_blob(munged_dial);
        } else {
-               blob = data_blob_string_const("");
+               blob = data_blob_string_const_null("");
        }
 
        status = init_samr_parameters_string(mem_ctx, &blob, &parameters);
index 25b042177d90fecb10b257ac900fe03e95d63b53..db60a2339c9c0470f3e85564f7ac4326aae796d3 100644 (file)
@@ -5066,7 +5066,7 @@ static bool run_local_gencache(int dummy)
                return False;
        }
 
-       blob = data_blob_string_const("bar");
+       blob = data_blob_string_const_null("bar");
        tm = time(NULL);
 
        if (!gencache_set_data_blob("foo", &blob, tm)) {