r9794: r11627@blu: tridge | 2005-08-30 22:55:27 +1000
[jra/samba/.git] / source4 / lib / data_blob.c
index 284db4518f161b61e91a53e19c9fa7293d385273..049210e8eeea73691495031cc43c9e0b4ffef1e1 100644 (file)
@@ -29,7 +29,7 @@ DATA_BLOB data_blob_named(const void *p, size_t length, const char *name)
 {
        DATA_BLOB ret;
 
-       if (length == 0) {
+       if (p == NULL && length == 0) {
                ZERO_STRUCT(ret);
                return ret;
        }
@@ -180,3 +180,16 @@ DATA_BLOB data_blob_const(const void *p, size_t length)
        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;
+}