{
DATA_BLOB ret;
- if (length == 0) {
+ if (p == NULL && length == 0) {
ZERO_STRUCT(ret);
return ret;
}
int i;
char *hex_string;
- hex_string = talloc_array_p(mem_ctx, char, (blob->length*2)+1);
+ hex_string = talloc_array(mem_ctx, char, (blob->length*2)+1);
if (!hex_string) {
return NULL;
}
blob.length = length;
return blob;
}
+
+
+/*
+ append some data to a data blob
+*/
+NTSTATUS data_blob_append(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, void *p, size_t length)
+{
+ blob->data = talloc_realloc_size(mem_ctx, blob->data, blob->length + length);
+ NT_STATUS_HAVE_NO_MEMORY(blob->data);
+ memcpy(blob->data + blob->length, p, length);
+ blob->length += length;
+ return NT_STATUS_OK;
+}