diff options
author | Mattias Andrée <maandree@kth.se> | 2021-08-05 17:30:53 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@kth.se> | 2021-08-05 17:30:53 +0200 |
commit | 210d6ad784d55362d24a22cd7e07725a794d46cd (patch) | |
tree | d4a0359da4cc1dad27266994954b608a1ab1ff51 /libskrift_open_font_fd.c | |
parent | demo: refuse to write image to terminal (diff) | |
download | libskrift-210d6ad784d55362d24a22cd7e07725a794d46cd.tar.gz libskrift-210d6ad784d55362d24a22cd7e07725a794d46cd.tar.bz2 libskrift-210d6ad784d55362d24a22cd7e07725a794d46cd.tar.xz |
minor fixes and cleanups, and update to use new version of libgrapheme and add text length parameter instead of using NUL-termination
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'libskrift_open_font_fd.c')
-rw-r--r-- | libskrift_open_font_fd.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libskrift_open_font_fd.c b/libskrift_open_font_fd.c index c00422e..e134cd8 100644 --- a/libskrift_open_font_fd.c +++ b/libskrift_open_font_fd.c @@ -13,6 +13,7 @@ libskrift_open_font_fd(LIBSKRIFT_FONT **fontp, int fd) saved_errno = errno; if (fstat(fd, &st) < 0 || !st.st_size || !S_ISREG(st.st_mode)) { + fallback: for (;;) { if (off + 2048 > size) { size += 8192; @@ -39,6 +40,8 @@ libskrift_open_font_fd(LIBSKRIFT_FONT **fontp, int fd) errno = saved_errno; } else { mem = mmap(NULL, (size_t)st.st_size, PROT_READ, MAP_PRIVATE, fd, 0); + if (mem == MAP_FAILED || !mem) + goto fallback; size = (size_t)st.st_size; mmapped = 1; } |