diff options
| author | 2025-10-29 16:23:56 +0100 | |
|---|---|---|
| committer | 2025-10-29 16:23:56 +0100 | |
| commit | 3588b4dbdb3be8648b47333b97e063c19d7ce9ae (patch) | |
| tree | 2e6898e2831e77cb52937378fa0be0c392e48aa4 | |
| parent | 543e20b9d792bb16d6b3c594da129448f74142c5 (diff) | |
| download | libplist-3588b4dbdb3be8648b47333b97e063c19d7ce9ae.tar.gz libplist-3588b4dbdb3be8648b47333b97e063c19d7ce9ae.tar.bz2 | |
Use sufficiently large data type for indexes/position counters
| -rw-r--r-- | src/base64.c | 2 | ||||
| -rw-r--r-- | src/bplist.c | 22 |
2 files changed, 12 insertions, 12 deletions
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 @@ unsigned char *base64decode(const char *buf, size_t *size) | |||
| 78 | if (len <= 0) return NULL; | 78 | if (len <= 0) return NULL; |
| 79 | unsigned char *outbuf = (unsigned char*)malloc((len/4)*3+3); | 79 | unsigned char *outbuf = (unsigned char*)malloc((len/4)*3+3); |
| 80 | const char *ptr = buf; | 80 | const char *ptr = buf; |
| 81 | int p = 0; | 81 | size_t p = 0; |
| 82 | int wv, w1, w2, w3, w4; | 82 | int wv, w1, w2, w3, w4; |
| 83 | int tmpval[4]; | 83 | int tmpval[4]; |
| 84 | int tmpcnt = 0; | 84 | 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 @@ static plist_t parse_string_node(const char **bnode, uint64_t size) | |||
| 369 | return node_create(NULL, data); | 369 | return node_create(NULL, data); |
| 370 | } | 370 | } |
| 371 | 371 | ||
| 372 | static char *plist_utf16be_to_utf8(uint16_t *unistr, long len, long *items_read, long *items_written) | 372 | static char *plist_utf16be_to_utf8(uint16_t *unistr, size_t len, size_t *items_read, size_t *items_written) |
| 373 | { | 373 | { |
| 374 | if (!unistr || (len <= 0)) return NULL; | 374 | if (!unistr || (len <= 0)) return NULL; |
| 375 | char* outbuf; | 375 | char* outbuf; |
| 376 | char* outbuf_new; | 376 | char* outbuf_new; |
| 377 | int p = 0; | 377 | size_t p = 0; |
| 378 | long i = 0; | 378 | size_t i = 0; |
| 379 | 379 | ||
| 380 | uint16_t wc; | 380 | uint16_t wc; |
| 381 | uint32_t w; | 381 | uint32_t w; |
| @@ -443,8 +443,8 @@ static char *plist_utf16be_to_utf8(uint16_t *unistr, long len, long *items_read, | |||
| 443 | static plist_t parse_unicode_node(const char **bnode, uint64_t size) | 443 | static plist_t parse_unicode_node(const char **bnode, uint64_t size) |
| 444 | { | 444 | { |
| 445 | plist_data_t data = plist_new_plist_data(); | 445 | plist_data_t data = plist_new_plist_data(); |
| 446 | long items_read = 0; | 446 | size_t items_read = 0; |
| 447 | long items_written = 0; | 447 | size_t items_written = 0; |
| 448 | 448 | ||
| 449 | data->type = PLIST_STRING; | 449 | data->type = PLIST_STRING; |
| 450 | data->strval = plist_utf16be_to_utf8((uint16_t*)(*bnode), size, &items_read, &items_written); | 450 | data->strval = plist_utf16be_to_utf8((uint16_t*)(*bnode), size, &items_read, &items_written); |
| @@ -1097,11 +1097,11 @@ static void write_string(bytearray_t * bplist, char *val, uint64_t size) | |||
| 1097 | write_raw_data(bplist, BPLIST_STRING, (uint8_t *) val, size); | 1097 | write_raw_data(bplist, BPLIST_STRING, (uint8_t *) val, size); |
| 1098 | } | 1098 | } |
| 1099 | 1099 | ||
| 1100 | static uint16_t *plist_utf8_to_utf16be(char *unistr, long size, long *items_read, long *items_written) | 1100 | static uint16_t *plist_utf8_to_utf16be(char *unistr, size_t size, size_t *items_read, size_t *items_written) |
| 1101 | { | 1101 | { |
| 1102 | uint16_t *outbuf; | 1102 | uint16_t *outbuf; |
| 1103 | int p = 0; | 1103 | size_t p = 0; |
| 1104 | long i = 0; | 1104 | size_t i = 0; |
| 1105 | 1105 | ||
| 1106 | unsigned char c0; | 1106 | unsigned char c0; |
| 1107 | unsigned char c1; | 1107 | unsigned char c1; |
| @@ -1156,10 +1156,10 @@ static uint16_t *plist_utf8_to_utf16be(char *unistr, long size, long *items_read | |||
| 1156 | return outbuf; | 1156 | return outbuf; |
| 1157 | } | 1157 | } |
| 1158 | 1158 | ||
| 1159 | static void write_unicode(bytearray_t * bplist, char *val, uint64_t size) | 1159 | static void write_unicode(bytearray_t * bplist, char *val, size_t size) |
| 1160 | { | 1160 | { |
| 1161 | long items_read = 0; | 1161 | size_t items_read = 0; |
| 1162 | long items_written = 0; | 1162 | size_t items_written = 0; |
| 1163 | uint16_t *unicodestr = NULL; | 1163 | uint16_t *unicodestr = NULL; |
| 1164 | 1164 | ||
| 1165 | unicodestr = plist_utf8_to_utf16be(val, size, &items_read, &items_written); | 1165 | unicodestr = plist_utf8_to_utf16be(val, size, &items_read, &items_written); |
