diff options
Diffstat (limited to 'fiv-io.c')
-rw-r--r-- | fiv-io.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -1263,7 +1263,7 @@ parse_mpf_index_ifd(struct tiffer *T) static bool parse_mpf( - GPtrArray *individuals, const uint8_t *mpf, size_t len, const uint8_t *end) + GPtrArray *individuals, const uint8_t *mpf, size_t len, size_t total_len) { struct tiffer T; if (!tiffer_init(&T, mpf, len) || !tiffer_next_ifd(&T)) @@ -1274,7 +1274,7 @@ parse_mpf( uint32_t *offsets = parse_mpf_index_ifd(&T); if (offsets) { for (const uint32_t *o = offsets; *o; o++) - if (*o <= end - mpf) + if (*o <= total_len) g_ptr_array_add(individuals, (gpointer) mpf + *o); free(offsets); } @@ -1378,7 +1378,7 @@ parse_jpeg_metadata(const char *data, size_t len, struct jpeg_metadata *meta) if (meta->mpf && marker == APP2 && p - payload >= 8 && !memcmp(payload, "MPF\0", 4) && !meta->mpf->len) { payload += 4; - parse_mpf(meta->mpf, payload, p - payload, end); + parse_mpf(meta->mpf, payload, p - payload, end - payload); } // TODO(p): Extract the main XMP segment. |