Commit 2004bd17 authored by Vladislav Vaintroub's avatar Vladislav Vaintroub

merge

parents 6d22c2e7 806df88c
...@@ -54,27 +54,14 @@ ut_dbg_assertion_failed( ...@@ -54,27 +54,14 @@ ut_dbg_assertion_failed(
const char* file, /*!< in: source file containing the assertion */ const char* file, /*!< in: source file containing the assertion */
ulint line); /*!< in: line number of the assertion */ ulint line); /*!< in: line number of the assertion */
#ifdef __NETWARE__
/** Flag for ignoring further assertion failures. This is set to TRUE
when on NetWare there happens an InnoDB assertion failure or other
fatal error condition that requires an immediate shutdown. */
extern ibool panic_shutdown;
/* Abort the execution. */
void ut_dbg_panic(void);
# define UT_DBG_PANIC ut_dbg_panic()
/* Stop threads in ut_a(). */
# define UT_DBG_STOP do {} while (0) /* We do not do this on NetWare */
#else /* __NETWARE__ */
# if defined(__WIN__) || defined(__INTEL_COMPILER)
# undef UT_DBG_USE_ABORT
# elif defined(__GNUC__) && (__GNUC__ > 2)
# define UT_DBG_USE_ABORT
# endif
# ifndef UT_DBG_USE_ABORT #define UT_DBG_USE_ABORT
#ifndef UT_DBG_USE_ABORT
/** A null pointer that will be dereferenced to trigger a memory trap */ /** A null pointer that will be dereferenced to trigger a memory trap */
extern ulint* ut_dbg_null_ptr; extern ulint* ut_dbg_null_ptr;
# endif #endif
# if defined(UNIV_SYNC_DEBUG) || !defined(UT_DBG_USE_ABORT) # if defined(UNIV_SYNC_DEBUG) || !defined(UT_DBG_USE_ABORT)
/** If this is set to TRUE by ut_dbg_assertion_failed(), all threads /** If this is set to TRUE by ut_dbg_assertion_failed(), all threads
...@@ -91,9 +78,14 @@ ut_dbg_stop_thread( ...@@ -91,9 +78,14 @@ ut_dbg_stop_thread(
ulint line); ulint line);
# endif # endif
# ifdef UT_DBG_USE_ABORT
#ifdef UT_DBG_USE_ABORT
/** Abort the execution. */ /** Abort the execution. */
#ifdef _WIN32
# define UT_DBG_PANIC __debugbreak()
#else
# define UT_DBG_PANIC abort() # define UT_DBG_PANIC abort()
#endif
/** Stop threads (null operation) */ /** Stop threads (null operation) */
# define UT_DBG_STOP do {} while (0) # define UT_DBG_STOP do {} while (0)
# else /* UT_DBG_USE_ABORT */ # else /* UT_DBG_USE_ABORT */
...@@ -106,7 +98,7 @@ ut_dbg_stop_thread( ...@@ -106,7 +98,7 @@ ut_dbg_stop_thread(
ut_dbg_stop_thread(__FILE__, (ulint) __LINE__); \ ut_dbg_stop_thread(__FILE__, (ulint) __LINE__); \
} while (0) } while (0)
# endif /* UT_DBG_USE_ABORT */ # endif /* UT_DBG_USE_ABORT */
#endif /* __NETWARE__ */
/** Abort execution if EXPR does not evaluate to nonzero. /** Abort execution if EXPR does not evaluate to nonzero.
@param EXPR assertion expression that should hold */ @param EXPR assertion expression that should hold */
......
...@@ -54,27 +54,14 @@ ut_dbg_assertion_failed( ...@@ -54,27 +54,14 @@ ut_dbg_assertion_failed(
const char* file, /*!< in: source file containing the assertion */ const char* file, /*!< in: source file containing the assertion */
ulint line); /*!< in: line number of the assertion */ ulint line); /*!< in: line number of the assertion */
#ifdef __NETWARE__
/** Flag for ignoring further assertion failures. This is set to TRUE
when on NetWare there happens an InnoDB assertion failure or other
fatal error condition that requires an immediate shutdown. */
extern ibool panic_shutdown;
/* Abort the execution. */
void ut_dbg_panic(void);
# define UT_DBG_PANIC ut_dbg_panic()
/* Stop threads in ut_a(). */
# define UT_DBG_STOP do {} while (0) /* We do not do this on NetWare */
#else /* __NETWARE__ */
# if defined(__WIN__) || defined(__INTEL_COMPILER)
# undef UT_DBG_USE_ABORT
# elif defined(__GNUC__) && (__GNUC__ > 2)
# define UT_DBG_USE_ABORT
# endif
# ifndef UT_DBG_USE_ABORT #define UT_DBG_USE_ABORT
#ifndef UT_DBG_USE_ABORT
/** A null pointer that will be dereferenced to trigger a memory trap */ /** A null pointer that will be dereferenced to trigger a memory trap */
extern ulint* ut_dbg_null_ptr; extern ulint* ut_dbg_null_ptr;
# endif #endif
# if defined(UNIV_SYNC_DEBUG) || !defined(UT_DBG_USE_ABORT) # if defined(UNIV_SYNC_DEBUG) || !defined(UT_DBG_USE_ABORT)
/** If this is set to TRUE by ut_dbg_assertion_failed(), all threads /** If this is set to TRUE by ut_dbg_assertion_failed(), all threads
...@@ -91,9 +78,14 @@ ut_dbg_stop_thread( ...@@ -91,9 +78,14 @@ ut_dbg_stop_thread(
ulint line); ulint line);
# endif # endif
# ifdef UT_DBG_USE_ABORT
#ifdef UT_DBG_USE_ABORT
/** Abort the execution. */ /** Abort the execution. */
#ifdef _WIN32
# define UT_DBG_PANIC __debugbreak()
#else
# define UT_DBG_PANIC abort() # define UT_DBG_PANIC abort()
#endif
/** Stop threads (null operation) */ /** Stop threads (null operation) */
# define UT_DBG_STOP do {} while (0) # define UT_DBG_STOP do {} while (0)
# else /* UT_DBG_USE_ABORT */ # else /* UT_DBG_USE_ABORT */
...@@ -106,7 +98,7 @@ ut_dbg_stop_thread( ...@@ -106,7 +98,7 @@ ut_dbg_stop_thread(
ut_dbg_stop_thread(__FILE__, (ulint) __LINE__); \ ut_dbg_stop_thread(__FILE__, (ulint) __LINE__); \
} while (0) } while (0)
# endif /* UT_DBG_USE_ABORT */ # endif /* UT_DBG_USE_ABORT */
#endif /* __NETWARE__ */
/** Abort execution if EXPR does not evaluate to nonzero. /** Abort execution if EXPR does not evaluate to nonzero.
@param EXPR assertion expression that should hold */ @param EXPR assertion expression that should hold */
......
...@@ -80,7 +80,7 @@ LExit: ...@@ -80,7 +80,7 @@ LExit:
It is assumed that called will add double quotation marks before and after It is assumed that called will add double quotation marks before and after
the string. the string.
*/ */
static void EscapeCommandLine(const wchar_t *in, wchar_t *out) static void EscapeCommandLine(const wchar_t *in, wchar_t *out, size_t buflen)
{ {
const wchar_t special_chars[]=L" \t\n\v\""; const wchar_t special_chars[]=L" \t\n\v\"";
bool needs_escaping= false; bool needs_escaping= false;
...@@ -97,7 +97,7 @@ static void EscapeCommandLine(const wchar_t *in, wchar_t *out) ...@@ -97,7 +97,7 @@ static void EscapeCommandLine(const wchar_t *in, wchar_t *out)
if(!needs_escaping) if(!needs_escaping)
{ {
wcscpy(out, in); wcscpy_s(out, buflen, in);
return; return;
} }
...@@ -119,7 +119,7 @@ static void EscapeCommandLine(const wchar_t *in, wchar_t *out) ...@@ -119,7 +119,7 @@ static void EscapeCommandLine(const wchar_t *in, wchar_t *out)
Escape all backslashes, but let the terminating double quotation mark Escape all backslashes, but let the terminating double quotation mark
that caller adds be interpreted as a metacharacter. that caller adds be interpreted as a metacharacter.
*/ */
for(int j= 0; j < 2*n_backslashes;j++) for(size_t j= 0; j < 2*n_backslashes;j++)
{ {
out[pos++]=L'\\'; out[pos++]=L'\\';
} }
...@@ -130,7 +130,7 @@ static void EscapeCommandLine(const wchar_t *in, wchar_t *out) ...@@ -130,7 +130,7 @@ static void EscapeCommandLine(const wchar_t *in, wchar_t *out)
/* /*
Escape all backslashes and the following double quotation mark. Escape all backslashes and the following double quotation mark.
*/ */
for(int j= 0; j < 2*n_backslashes + 1; j++) for(size_t j= 0; j < 2*n_backslashes + 1; j++)
{ {
out[pos++]=L'\\'; out[pos++]=L'\\';
} }
...@@ -139,7 +139,7 @@ static void EscapeCommandLine(const wchar_t *in, wchar_t *out) ...@@ -139,7 +139,7 @@ static void EscapeCommandLine(const wchar_t *in, wchar_t *out)
else else
{ {
/* Backslashes aren't special here. */ /* Backslashes aren't special here. */
for (int j=0; j < n_backslashes; j++) for (size_t j=0; j < n_backslashes; j++)
out[pos++] = L'\\'; out[pos++] = L'\\';
out[pos++]= c; out[pos++]= c;
...@@ -592,7 +592,8 @@ extern "C" UINT __stdcall CheckDatabaseProperties (MSIHANDLE hInstall) ...@@ -592,7 +592,8 @@ extern "C" UINT __stdcall CheckDatabaseProperties (MSIHANDLE hInstall)
DWORD PasswordLen= MAX_PATH; DWORD PasswordLen= MAX_PATH;
MsiGetPropertyW (hInstall, L"PASSWORD", Password, &PasswordLen); MsiGetPropertyW (hInstall, L"PASSWORD", Password, &PasswordLen);
EscapeCommandLine(Password, EscapedPassword); EscapeCommandLine(Password, EscapedPassword,
sizeof(EscapedPassword)/sizeof(EscapedPassword[0]));
MsiSetPropertyW(hInstall,L"ESCAPEDPASSWORD",EscapedPassword); MsiSetPropertyW(hInstall,L"ESCAPEDPASSWORD",EscapedPassword);
DWORD SkipNetworkingLen= MAX_PATH; DWORD SkipNetworkingLen= MAX_PATH;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment