aboutsummaryrefslogtreecommitdiff
path: root/graphics/font.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/font.cpp')
-rw-r--r--graphics/font.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/graphics/font.cpp b/graphics/font.cpp
index bfc6dea0c1..4d322be081 100644
--- a/graphics/font.cpp
+++ b/graphics/font.cpp
@@ -733,6 +733,14 @@ NewFont *NewFont::loadFromCache(Common::SeekableReadStream &stream) {
}
}
+ if (stream.err() || stream.eos()) {
+ free(data->bits);
+ free(data->offset);
+ free(data->width);
+ free(data);
+ return 0;
+ }
+
FontDesc desc;
desc.name = data->name;
desc.maxwidth = data->maxwidth;
@@ -752,8 +760,7 @@ NewFont *NewFont::loadFromCache(Common::SeekableReadStream &stream) {
desc.bits_size = data->bits_size;
font = new NewFont(desc, data);
- if (!font || stream.err()) {
- delete font;
+ if (!font) {
free(data->bits);
free(data->offset);
free(data->width);