blob: 65df1052ad85be7b8ee6c9920399cade66b94827 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/* See LICENSE file for copyright and license details. */
#include "common.h"
int
libparsesfnt_parse_fpgm(
const char *data, size_t size,
uint8_t *programp,
const struct libparsesfnt_tabdir_entry *tag,
size_t first, size_t count)
{
if (count > SIZE_MAX - first) {
errno = EFBIG;
return -1;
}
if (tag->offset < size || first + count > size - tag->offset) {
errno = EBFONT;
return -1;
}
memcpy(programp, &data[tag->offset + first], count - first);
return 0;
}
|