diff options
author | rubidium <rubidium@openttd.org> | 2008-07-24 08:46:34 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2008-07-24 08:46:34 +0000 |
commit | 9bee9948986c4c4905c53b6214311e2ddb6d6e8d (patch) | |
tree | 5c1326188e9088a9d688adc6ae835cb044e16fbc | |
parent | 81c50c6c325adcf771f000190d53ab911d83d2f6 (diff) | |
download | openttd-9bee9948986c4c4905c53b6214311e2ddb6d6e8d.tar.xz |
(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.
-rw-r--r-- | src/tar_type.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/tar_type.h b/src/tar_type.h index 04f7250e6..233b0eada 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); } }; |