diff options
author | Po Lu <luangruo@yahoo.com> | 2023-09-23 10:07:38 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2023-09-23 10:07:38 +0800 |
commit | 5bd6f963f682c7ab332d8c640e67ff66a6bb4a96 (patch) | |
tree | 7fb459d8ac09fe4fded088a0d09e3a89bf17181b /src/sfntfont.c | |
parent | 3a1e65bd8ead5f8376e2794500e57315d294c5aa (diff) | |
download | emacs-5bd6f963f682c7ab332d8c640e67ff66a6bb4a96.tar.gz |
Correct comparisons between size_t and ssize_t
* src/sfnt.c (sfnt_read_table_directory, sfnt_read_cmap_format_0)
(sfnt_read_cmap_format_2, sfnt_read_cmap_format_4)
(sfnt_read_cmap_format_6, sfnt_read_cmap_format_8)
(sfnt_read_cmap_format_12, sfnt_read_cmap_format_14)
(sfnt_read_cmap_table_1, sfnt_read_cmap_table)
(sfnt_read_head_table, sfnt_read_hhea_table, sfnt_read_maxp_table)
(sfnt_read_glyf_table, sfnt_read_hmtx_table, sfnt_read_name_table)
(sfnt_read_meta_table, sfnt_read_ttc_header)
(sfnt_read_default_uvs_table, sfnt_read_nondefault_uvs_table)
(sfnt_read_fvar_table, sfnt_read_gvar_table, sfnt_read_avar_table)
(sfnt_read_cvar_table, sfnt_read_OS_2_table):
* src/sfntfont.c (sfnt_enum_font): Revise code written with only
signed `long' in mind to properly compare size_t values with
ssize_t.
Diffstat (limited to 'src/sfntfont.c')
-rw-r--r-- | src/sfntfont.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/sfntfont.c b/src/sfntfont.c index db527d7d4af..d556092db12 100644 --- a/src/sfntfont.c +++ b/src/sfntfont.c @@ -1144,7 +1144,9 @@ sfnt_enum_font_1 (int fd, const char *file, int sfnt_enum_font (const char *file) { - int fd, rc; + int fd; + int rc; + off_t seek; struct sfnt_offset_subtable *subtables; struct sfnt_ttc_header *ttc; size_t i; @@ -1175,8 +1177,9 @@ sfnt_enum_font (const char *file) for (i = 0; i < ttc->num_fonts; ++i) { - if (lseek (fd, ttc->offset_table[i], SEEK_SET) - != ttc->offset_table[i]) + seek = lseek (fd, ttc->offset_table[i], SEEK_SET); + + if (seek == -1 || seek != ttc->offset_table[i]) continue; subtables = sfnt_read_table_directory (fd); |