null byte and use it in Samba 3.
This matches the behaviour prior to my data_blob changes.
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
*/
**/
_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
*/
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(
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;
}
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);
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) {
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);
}
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);
}
if (!memcache_lookup(
NULL, SINGLETON_CACHE,
- data_blob_string_const("get_peer_name"),
+ data_blob_string_const_null("get_peer_name"),
&tmp)) {
return false;
}
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);
}
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;
*/
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);
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, ¶meters);
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, ¶meters);
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)) {