summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2015-11-16 13:38:06 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2015-11-16 13:38:06 +0000
commitbe44b80ece41d46cff3569c600b502ecb6e7d78a (patch)
treec589724f348e4649c7354418366b6f0ef13ab1f0 /Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge
parente30f5a512157bca19a4097e0e2fb1443a50f58ad (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')
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/encoding.c2
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/macbinary.c23
-rw-r--r--Build/source/texk/web2c/luatexdir/luafontloader/fontforge/fontforge/parsettf.c10
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;
}