From 06968db4bc2b462a5a152ae1f3e46114bace71ea Mon Sep 17 00:00:00 2001 From: Chris Taylor Date: Sun, 8 Jan 2017 15:17:58 +0800 Subject: [PATCH] Fix crash when ran out of disk space when writing demo Check for nd_record_v_no_space in _newdemo_write. --- similar/main/newdemo.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/similar/main/newdemo.cpp b/similar/main/newdemo.cpp index 22e023dc6..dc24be90e 100644 --- a/similar/main/newdemo.cpp +++ b/similar/main/newdemo.cpp @@ -317,13 +317,16 @@ static int _newdemo_write(const void *buffer, int elsize, int nelem ) { int num_written, total_size; + if (unlikely(nd_record_v_no_space)) + return -1; + total_size = elsize * nelem; nd_record_v_framebytes_written += total_size; Newdemo_num_written += total_size; Assert(outfile); num_written = (PHYSFS_write)(outfile, buffer, elsize, nelem); - if (num_written == nelem && !nd_record_v_no_space) + if (likely(num_written == nelem)) return num_written; nd_record_v_no_space=2;