sh/jshn.sh: fix json_get_var() and json_get_type() to not return cached values
[project/libubox.git] / blob.c
diff --git a/blob.c b/blob.c
index e59a6d0..928b5c5 100644 (file)
--- a/blob.c
+++ b/blob.c
@@ -3,14 +3,17 @@
  *
  * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 2.1
- * as published by the Free Software Foundation
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
 #include "blob.h"
@@ -67,6 +70,7 @@ blob_add(struct blob_buf *buf, struct blob_attr *pos, int id, int payload)
        }
 
        blob_init(attr, id, payload + sizeof(struct blob_attr));
+       blob_fill_pad(attr);
        return attr;
 }
 
@@ -91,7 +95,7 @@ blob_buf_free(struct blob_buf *buf)
        buf->buflen = 0;
 }
 
-static void
+void
 blob_fill_pad(struct blob_attr *attr)
 {
        char *buf = (char *) attr;
@@ -109,7 +113,6 @@ blob_set_raw_len(struct blob_attr *attr, unsigned int len)
        len &= BLOB_ATTR_LEN_MASK;
        len |= (id << BLOB_ATTR_ID_SHIFT) & BLOB_ATTR_ID_MASK;
        attr->id_len = cpu_to_be32(len);
-       blob_fill_pad(attr);
 }
 
 struct blob_attr *