From 8ecaea19a5362f30f9c87c4caf00e92414c82ec1 Mon Sep 17 00:00:00 2001 From: kichik Date: Thu, 25 Jan 2007 21:29:03 +0000 Subject: [PATCH] set silent flag as early as possible, so most crc errors won't appear git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@4902 212acab6-be3b-0410-9dea-997c60f758d6 --- Source/exehead/fileform.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/Source/exehead/fileform.c b/Source/exehead/fileform.c index 071d9388..b1501fd3 100644 --- a/Source/exehead/fileform.c +++ b/Source/exehead/fileform.c @@ -166,15 +166,19 @@ const char * NSISCALL loadHeaders(int cl_flags) h.nsinst[0] == FH_INT1 ) { - if (h.length_of_all_following_data > left) - return _LANG_INVALIDCRC; - g_filehdrsize = m_pos; -#if defined(NSIS_CONFIG_CRC_SUPPORT) || (defined(NSIS_CONFIG_SILENT_SUPPORT) && defined(NSIS_CONFIG_VISIBLE_SUPPORT)) +#if defined(NSIS_CONFIG_CRC_SUPPORT) || defined(NSIS_CONFIG_SILENT_SUPPORT) cl_flags |= h.flags; #endif +#ifdef NSIS_CONFIG_SILENT_SUPPORT + g_exec_flags.silent |= cl_flags & FH_FLAGS_SILENT; +#endif + + if (h.length_of_all_following_data > left) + return _LANG_INVALIDCRC; + #ifdef NSIS_CONFIG_CRC_SUPPORT if ((cl_flags & FH_FLAGS_FORCE_CRC) == 0) { @@ -282,13 +286,6 @@ const char * NSISCALL loadHeaders(int cl_flags) header = g_header = data; -#ifdef NSIS_CONFIG_SILENT_SUPPORT - if (cl_flags & FH_FLAGS_SILENT) - header->flags |= CH_FLAGS_SILENT; - - g_exec_flags.silent = header->flags & (CH_FLAGS_SILENT | CH_FLAGS_SILENT_LOG); -#endif - g_flags = header->flags; #ifdef NSIS_CONFIG_UNINSTALL_SUPPORT