diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-02-24 03:30:21 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-02-24 03:30:21 +0100 |
commit | 4235556c16d4eb0be17a4baac1801bfd92541e0a (patch) | |
tree | 58ced9cb6e705bffb823906f579fffe491cf9ac9 /sys/src/libmemdraw | |
parent | 5f8cacd2de0afc51a4c01a358ed087847f284dda (diff) |
libdraw: check fontchar count in openmemsubfont() and readsubfont()
Diffstat (limited to 'sys/src/libmemdraw')
-rw-r--r-- | sys/src/libmemdraw/openmemsubfont.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/src/libmemdraw/openmemsubfont.c b/sys/src/libmemdraw/openmemsubfont.c index ff12bcffd..03bb3edc5 100644 --- a/sys/src/libmemdraw/openmemsubfont.c +++ b/sys/src/libmemdraw/openmemsubfont.c @@ -25,6 +25,10 @@ openmemsubfont(char *name) goto Err; } n = atoi(hdr); + if(n <= 0 || n > 0x7fff){ + werrstr("openmemsubfont: bad fontchar count %d", n); + goto Err; + } p = malloc(6*(n+1)); if(p == nil) goto Err; @@ -46,9 +50,7 @@ openmemsubfont(char *name) return sf; Err: close(fd); - if (i != nil) - freememimage(i); - if (p != nil) - free(p); + free(p); + freememimage(i); return nil; } |