X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;ds=sidebyside;f=blob.c;h=3929ad325012c38038831f8da43b1c72efac060d;hb=bdf717425a8f21e7abf6c45b36fe294b1fea58c5;hp=cafd74cfa5d0c04eac984dee0ee92c55c3489ed8;hpb=f2b9272e0b427545e34b27ba4be4a5b1bbc6ad69;p=project%2Flibubox.git diff --git a/blob.c b/blob.c index cafd74c..3929ad3 100644 --- a/blob.c +++ b/blob.c @@ -80,6 +80,14 @@ blob_buf_init(struct blob_buf *buf, int id) return 0; } +void +blob_buf_free(struct blob_buf *buf) +{ + free(buf->buf); + buf->buf = NULL; + buf->buflen = 0; +} + struct blob_attr * blob_new(struct blob_buf *buf, int id, int payload) { @@ -132,9 +140,9 @@ static const int blob_type_minlen[BLOB_ATTR_LAST] = { }; bool -blob_check_type(void *ptr, int len, int type) +blob_check_type(const void *ptr, int len, int type) { - char *data = ptr; + const char *data = ptr; if (type >= BLOB_ATTR_LAST) return false; @@ -147,7 +155,7 @@ blob_check_type(void *ptr, int len, int type) return false; } - if (type == BLOB_ATTR_STRING && data[len] != 0) + if (type == BLOB_ATTR_STRING && data[len - 1] != 0) return false; return true;