From 9ace9f2bfabacdc3b37ce751d7dc2ffbb97e1c6a Mon Sep 17 00:00:00 2001 From: Bill Currie Date: Sun, 28 Aug 2011 12:54:50 +0900 Subject: [PATCH] Fix some bad timing with a dstring_delete. Opps :P, double free. --- nq/source/cl_demo.c | 3 ++- qw/source/cl_demo.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/nq/source/cl_demo.c b/nq/source/cl_demo.c index 6b9d9968b..abcb8b1ec 100644 --- a/nq/source/cl_demo.c +++ b/nq/source/cl_demo.c @@ -347,10 +347,10 @@ CL_StartDemo (void) Sys_Printf ("Playing demo from %s.\n", name->str); QFS_FOpenFile (name->str, &cls.demofile); - dstring_delete (name); if (!cls.demofile) { Sys_Printf ("ERROR: couldn't open.\n"); cls.demonum = -1; // stop demo loop + dstring_delete (name); return; } @@ -368,6 +368,7 @@ CL_StartDemo (void) if (neg) cls.forcetrack = -cls.forcetrack; + dstring_delete (name); } /* diff --git a/qw/source/cl_demo.c b/qw/source/cl_demo.c index a5d21b51c..1c9c00f4d 100644 --- a/qw/source/cl_demo.c +++ b/qw/source/cl_demo.c @@ -890,10 +890,10 @@ CL_StartDemo (void) Sys_Printf ("Playing demo from %s.\n", name->str); QFS_FOpenFile (name->str, &cls.demofile); - dstring_delete (name); if (!cls.demofile) { Sys_Printf ("ERROR: couldn't open.\n"); cls.demonum = -1; // stop demo loop + dstring_delete (name); return; }