Explorar o código

Merge pull request 'Fix some overflow bugs' (#29) from saagarjha/snac2:master into master

Reviewed-on: https://codeberg.org/grunfink/snac2/pulls/29
grunfink %!s(int64=3) %!d(string=hai) anos
pai
achega
5ae107188f
Modificáronse 2 ficheiros con 4 adicións e 4 borrados
  1. 3 3
      xs.h
  2. 1 1
      xs_curl.h

+ 3 - 3
xs.h

@@ -1057,12 +1057,12 @@ xs_data *xs_data_new(const void *data, int size)
     xs_data *v;
 
     /* add the overhead (data type + 24bit size) */
-    size += 4;
+    int total_size = size + 4;
 
-    v = xs_realloc(NULL, _xs_blk_size(size));
+    v = xs_realloc(NULL, _xs_blk_size(total_size));
     v[0] = XSTYPE_DATA;
 
-    _xs_put_24b(v + 1, size);
+    _xs_put_24b(v + 1, total_size);
 
     memcpy(&v[4], data, size);
 

+ 1 - 1
xs_curl.h

@@ -55,7 +55,7 @@ static int _data_callback(void *buffer, size_t size,
 
     /* open space */
     pd->size += sz;
-    pd->data = xs_realloc(pd->data, pd->size + 1);
+    pd->data = xs_realloc(pd->data, _xs_blk_size(pd->size + 1));
 
     /* copy data */
     memcpy(pd->data + pd->offset, buffer, sz);