From db80d5c560f55eaaad2702a4dae61b4b9c027e26 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 16 Apr 2019 03:39:29 +0200 Subject: Fix T62852: crash reading corrupt DDS file. --- source/blender/imbuf/intern/dds/DirectDrawSurface.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/blender/imbuf/intern/dds/DirectDrawSurface.cpp') diff --git a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp index 16a7525bb80..76de84cdee5 100644 --- a/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp +++ b/source/blender/imbuf/intern/dds/DirectDrawSurface.cpp @@ -1148,6 +1148,12 @@ void *DirectDrawSurface::readData(uint &rsize) stream.seek(header_size); mem_read(stream, data, size); + if (stream.failed) { + free(data); + data = NULL; + rsize = 0; + } + // Maybe check if size == rsize? assert() isn't in this scope... return data; -- cgit v1.2.3