Use sufficiently large data type for indexes/position counters
diff --git a/src/base64.c b/src/base64.c index ee02356..76990b9 100644 --- a/src/base64.c +++ b/src/base64.c
@@ -78,7 +78,7 @@ if (len <= 0) return NULL; unsigned char *outbuf = (unsigned char*)malloc((len/4)*3+3); const char *ptr = buf; - int p = 0; + size_t p = 0; int wv, w1, w2, w3, w4; int tmpval[4]; int tmpcnt = 0;
diff --git a/src/bplist.c b/src/bplist.c index 85e55e2..08fca87 100644 --- a/src/bplist.c +++ b/src/bplist.c
@@ -369,13 +369,13 @@ return node_create(NULL, data); } -static char *plist_utf16be_to_utf8(uint16_t *unistr, long len, long *items_read, long *items_written) +static char *plist_utf16be_to_utf8(uint16_t *unistr, size_t len, size_t *items_read, size_t *items_written) { if (!unistr || (len <= 0)) return NULL; char* outbuf; char* outbuf_new; - int p = 0; - long i = 0; + size_t p = 0; + size_t i = 0; uint16_t wc; uint32_t w; @@ -443,8 +443,8 @@ static plist_t parse_unicode_node(const char **bnode, uint64_t size) { plist_data_t data = plist_new_plist_data(); - long items_read = 0; - long items_written = 0; + size_t items_read = 0; + size_t items_written = 0; data->type = PLIST_STRING; data->strval = plist_utf16be_to_utf8((uint16_t*)(*bnode), size, &items_read, &items_written); @@ -1097,11 +1097,11 @@ write_raw_data(bplist, BPLIST_STRING, (uint8_t *) val, size); } -static uint16_t *plist_utf8_to_utf16be(char *unistr, long size, long *items_read, long *items_written) +static uint16_t *plist_utf8_to_utf16be(char *unistr, size_t size, size_t *items_read, size_t *items_written) { uint16_t *outbuf; - int p = 0; - long i = 0; + size_t p = 0; + size_t i = 0; unsigned char c0; unsigned char c1; @@ -1156,10 +1156,10 @@ return outbuf; } -static void write_unicode(bytearray_t * bplist, char *val, uint64_t size) +static void write_unicode(bytearray_t * bplist, char *val, size_t size) { - long items_read = 0; - long items_written = 0; + size_t items_read = 0; + size_t items_written = 0; uint16_t *unicodestr = NULL; unicodestr = plist_utf8_to_utf16be(val, size, &items_read, &items_written);