summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xs.h6
-rw-r--r--xs_curl.h2
2 files changed, 4 insertions, 4 deletions
diff --git a/xs.h b/xs.h
index 2fc7dda..fef91b7 100644
--- a/xs.h
+++ b/xs.h
@@ -1057,12 +1057,12 @@ xs_data *xs_data_new(const void *data, int size)
1057 xs_data *v; 1057 xs_data *v;
1058 1058
1059 /* add the overhead (data type + 24bit size) */ 1059 /* add the overhead (data type + 24bit size) */
1060 size += 4; 1060 int total_size = size + 4;
1061 1061
1062 v = xs_realloc(NULL, _xs_blk_size(size)); 1062 v = xs_realloc(NULL, _xs_blk_size(total_size));
1063 v[0] = XSTYPE_DATA; 1063 v[0] = XSTYPE_DATA;
1064 1064
1065 _xs_put_24b(v + 1, size); 1065 _xs_put_24b(v + 1, total_size);
1066 1066
1067 memcpy(&v[4], data, size); 1067 memcpy(&v[4], data, size);
1068 1068
diff --git a/xs_curl.h b/xs_curl.h
index e880a0d..ca90f92 100644
--- a/xs_curl.h
+++ b/xs_curl.h
@@ -55,7 +55,7 @@ static int _data_callback(void *buffer, size_t size,
55 55
56 /* open space */ 56 /* open space */
57 pd->size += sz; 57 pd->size += sz;
58 pd->data = xs_realloc(pd->data, pd->size + 1); 58 pd->data = xs_realloc(pd->data, _xs_blk_size(pd->size + 1));
59 59
60 /* copy data */ 60 /* copy data */
61 memcpy(pd->data + pd->offset, buffer, sz); 61 memcpy(pd->data + pd->offset, buffer, sz);