From 9bee9948986c4c4905c53b6214311e2ddb6d6e8d Mon Sep 17 00:00:00 2001 From: rubidium Date: Thu, 24 Jul 2008 08:46:34 +0000 Subject: [PATCH] (svn r13814) -Fix (r13810): MSVC (as usual) does stupid things. This time it is copying around a struct it created itself, causing bad things to happen if you don't explicitly set all variables to something remotely sane in the constructor. --- src/tar_type.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tar_type.h b/src/tar_type.h index 04f7250e6d..233b0eada5 100644 --- a/src/tar_type.h +++ b/src/tar_type.h @@ -12,6 +12,10 @@ struct TarListEntry { const char *filename; + /* MSVC goes copying around this struct after initialisation, so it tries + * to free filename, which isn't set at that moment... but because it + * initializes the variable with garbage, it's going to segfault. */ + TarListEntry() : filename(NULL) {} ~TarListEntry() { free((void*)this->filename); } };