summaryrefslogtreecommitdiff
path: root/sys/src/libmemdraw
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2015-02-24 03:30:21 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2015-02-24 03:30:21 +0100
commit4235556c16d4eb0be17a4baac1801bfd92541e0a (patch)
tree58ced9cb6e705bffb823906f579fffe491cf9ac9 /sys/src/libmemdraw
parent5f8cacd2de0afc51a4c01a358ed087847f284dda (diff)
libdraw: check fontchar count in openmemsubfont() and readsubfont()
Diffstat (limited to 'sys/src/libmemdraw')
-rw-r--r--sys/src/libmemdraw/openmemsubfont.c10
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;
}