diff options
author | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2015-11-16 13:38:06 +0000 |
---|---|---|
committer | Akira Kakuto <kakuto@fuk.kindai.ac.jp> | 2015-11-16 13:38:06 +0000 |
commit | be44b80ece41d46cff3569c600b502ecb6e7d78a (patch) | |
tree | c589724f348e4649c7354418366b6f0ef13ab1f0 /Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge | |
parent | e30f5a512157bca19a4097e0e2fb1443a50f58ad (diff) |
web2c/luatexdir: Sync with the upstream trunk.
git-svn-id: svn://tug.org/texlive/trunk@38873 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge')
3 files changed, 28 insertions, 7 deletions
diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/encoding.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/encoding.c index acaf51264b9..8b42a186b2b 100644 --- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/encoding.c +++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/encoding.c @@ -541,6 +541,8 @@ return( NULL ); base = 256; else if ( enc->char_cnt<=0x10000 ) base = 0x10000; + if (base==0) +return( NULL ); encoded = galloc(base*sizeof(int)); memset(encoded,-1,base*sizeof(int)); unencoded = galloc(sf->glyphcnt*sizeof(int)); diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/macbinary.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/macbinary.c index 0b9be587a59..ca8ceed899f 100644 --- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/macbinary.c +++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/macbinary.c @@ -303,7 +303,10 @@ static SplineFont *SearchPostscriptResources(FILE * f, long rlistpos, exit(1); } } - fread(buffer, 1, rlen, f); + if(fread(buffer, 1, rlen, f) != ((size_t)rlen) ) { + LogError(_("Unable to read %u bytes for buffer\n"),rlen); + exit(1); + } fwrite(buffer, 1, rlen, pfb); } free(buffer); @@ -580,7 +583,9 @@ static FOND *BuildFondList(FILE * f, long rlistpos, int subcnt, long rdata_pos, if (rname != -1) { fseek(f, name_list + rname, SEEK_SET); ch1 = getc(f); - fread(name, 1, ch1, f); + if( fread(name, 1, ch1, f) != ((size_t)ch1)) { + LogError(_("Unable to read %u bytes for name, but going on.\n"),ch1); + } name[ch1] = '\0'; cur->fondname = copy(name); } @@ -1043,7 +1048,9 @@ static SplineFont *IsResourceInBinary(FILE * f, char *filename, int flags, /* Look for a bare truetype font in a binhex/macbinary wrapper */ if (dlen != 0 && rlen <= dlen) { int pos = ftell(f); - fread(header, 1, 4, f); + if (fread(header, 1, 4, f) != ((size_t)4)) { + LogError(_("Unable to read 4 bytes for header, but going on.\n")); + } header[5] = '\0'; if (strcmp((char *) header, "OTTO") == 0 || strcmp((char *) header, "true") == 0 @@ -1141,7 +1148,10 @@ static SplineFont *IsResourceInHex(FILE * f, char *filename, int flags, fclose(binary); return (NULL); } - fread(header, 1, 20, binary); + if ( fread(header, 1, 20, binary) != 20 ) { + LogError(_("Can't read 20 bytes for header\n")); + return (NULL); + } dlen = (header[10] << 24) | (header[11] << 16) | (header[12] << 8) | header[13]; @@ -1151,7 +1161,10 @@ static SplineFont *IsResourceInHex(FILE * f, char *filename, int flags, /* Look for a bare truetype font in a binhex/macbinary wrapper */ if (dlen != 0 && rlen < dlen) { int pos = ftell(binary); - fread(header, 1, 4, binary); + if (fread(header, 1, 4, binary) != 4) { + LogError(_("Can't read 4 bytes for header\n")); + return (NULL); + } header[5] = '\0'; if (strcmp((char *) header, "OTTO") == 0 || strcmp((char *) header, "true") == 0 diff --git a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettf.c b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettf.c index 7586416fb16..5a3d3b58d20 100644 --- a/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettf.c +++ b/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettf.c @@ -3860,7 +3860,8 @@ static int readtyp1glyphs(FILE *ttf,struct ttfinfo *info) { /* it's not exactly 20. I've seen 22 and 24. So see if we can find "%!PS-Adobe" */ /* in the first few bytes of the file, and skip to there if found */ { char buffer[41]; - fread(buffer,1,sizeof(buffer),ttf); + if(fread(buffer,1,sizeof(buffer),ttf) != sizeof(buffer)) +return( false ); buffer[40] = '\0'; for ( i=39; i>=0; --i ) if ( buffer[i]=='%' && buffer[i+1]=='!' ) @@ -5336,7 +5337,12 @@ return; tab->len = len; tab->data = galloc(len); fseek(ttf,start,SEEK_SET); - fread(tab->data,1,len,ttf); + if (fread(tab->data,1,len,ttf) != (size_t)len) { + LogError( _("Unable to read %u bytes for data, so I'm ignoring it.\n"), len ); + if (tab->data !=NULL) free(tab->data); + if (tab !=NULL) free(tab); +return; + } tab->next = info->tabs; info->tabs = tab; } |