mirror of https://gitee.com/bigwinds/arangodb
fixed buffer overflow
This commit is contained in:
parent
b610ba3894
commit
212a1e7813
|
@ -251,7 +251,7 @@ static void copyString32to8(char* dst, size_t dstLen, const char32_t* src) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void copyString32(char32_t* dst, const char32_t* src, size_t len) {
|
static void copyString32(char32_t* dst, const char32_t* src, size_t len) {
|
||||||
while (*src && 1 < len) {
|
while (0 < len && *src) {
|
||||||
*dst++ = *src++;
|
*dst++ = *src++;
|
||||||
--len;
|
--len;
|
||||||
}
|
}
|
||||||
|
@ -1963,7 +1963,7 @@ int InputBuffer::completeLine(PromptBase& pi) {
|
||||||
int tailIndex = startIndex + longestCommonPrefix;
|
int tailIndex = startIndex + longestCommonPrefix;
|
||||||
memcpy(&displayText[tailIndex], &buf32[pos],
|
memcpy(&displayText[tailIndex], &buf32[pos],
|
||||||
sizeof(char32_t) * (displayLength - tailIndex + 1));
|
sizeof(char32_t) * (displayLength - tailIndex + 1));
|
||||||
copyString32(buf32, displayText.get(), buflen + 1);
|
copyString32(buf32, displayText.get(), displayLength);
|
||||||
pos = startIndex + longestCommonPrefix;
|
pos = startIndex + longestCommonPrefix;
|
||||||
len = displayLength;
|
len = displayLength;
|
||||||
refreshLine(pi);
|
refreshLine(pi);
|
||||||
|
@ -2303,7 +2303,7 @@ int InputBuffer::incrementalHistorySearch(PromptBase& pi, int startChar) {
|
||||||
--dp.searchTextLen;
|
--dp.searchTextLen;
|
||||||
dp.searchText[dp.searchTextLen] = 0;
|
dp.searchText[dp.searchTextLen] = 0;
|
||||||
copyString32(tempUnicode.get(), dp.searchText.get(),
|
copyString32(tempUnicode.get(), dp.searchText.get(),
|
||||||
dp.searchTextLen + 1);
|
dp.searchTextLen);
|
||||||
dp.updateSearchText(tempUnicode.get());
|
dp.updateSearchText(tempUnicode.get());
|
||||||
} else {
|
} else {
|
||||||
beep();
|
beep();
|
||||||
|
@ -2318,7 +2318,7 @@ int InputBuffer::incrementalHistorySearch(PromptBase& pi, int startChar) {
|
||||||
unique_ptr<char32_t[]> tempUnicode(
|
unique_ptr<char32_t[]> tempUnicode(
|
||||||
new char32_t[dp.searchTextLen + 2]);
|
new char32_t[dp.searchTextLen + 2]);
|
||||||
copyString32(tempUnicode.get(), dp.searchText.get(),
|
copyString32(tempUnicode.get(), dp.searchText.get(),
|
||||||
dp.searchTextLen + 2);
|
dp.searchTextLen);
|
||||||
tempUnicode[dp.searchTextLen] = c;
|
tempUnicode[dp.searchTextLen] = c;
|
||||||
tempUnicode[dp.searchTextLen + 1] = 0;
|
tempUnicode[dp.searchTextLen + 1] = 0;
|
||||||
dp.updateSearchText(tempUnicode.get());
|
dp.updateSearchText(tempUnicode.get());
|
||||||
|
@ -2395,7 +2395,7 @@ int InputBuffer::incrementalHistorySearch(PromptBase& pi, int startChar) {
|
||||||
Utf32String tempUnicode(pb.promptBytes + 1);
|
Utf32String tempUnicode(pb.promptBytes + 1);
|
||||||
|
|
||||||
copyString32(tempUnicode.get(), &pi.promptText[pi.promptLastLinePosition],
|
copyString32(tempUnicode.get(), &pi.promptText[pi.promptLastLinePosition],
|
||||||
pb.promptBytes + 1);
|
pb.promptBytes - pi.promptLastLinePosition);
|
||||||
tempUnicode.initFromBuffer();
|
tempUnicode.initFromBuffer();
|
||||||
pb.promptText = tempUnicode;
|
pb.promptText = tempUnicode;
|
||||||
pb.promptExtraLines = 0;
|
pb.promptExtraLines = 0;
|
||||||
|
|
|
@ -176,8 +176,8 @@ if (WINDOWS)
|
||||||
set(BASE_CXX_FLAGS "/GR /EHsc" CACHE STRING "base C++flags")
|
set(BASE_CXX_FLAGS "/GR /EHsc" CACHE STRING "base C++flags")
|
||||||
else ()
|
else ()
|
||||||
set(BASE_FLAGS "" CACHE STRING "base flags")
|
set(BASE_FLAGS "" CACHE STRING "base flags")
|
||||||
set(BASE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "base C flags")
|
set(BASE_C_FLAGS "${CMAKE_C_FLAGS} $ENV{CFLAGS}" CACHE STRING "base C flags")
|
||||||
set(BASE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "base C++ flags")
|
set(BASE_CXX_FLAGS "${CMAKE_CXX_FLAGS} $ENV{CXXFLAGS}" CACHE STRING "base C++ flags")
|
||||||
set(BASE_LD_FLAGS "$ENV{LDFLAGS}" CACHE STRING "base linker flags")
|
set(BASE_LD_FLAGS "$ENV{LDFLAGS}" CACHE STRING "base linker flags")
|
||||||
set(BASE_LIBS "$ENV{LIBS}" CACHE STRING "base libraries")
|
set(BASE_LIBS "$ENV{LIBS}" CACHE STRING "base libraries")
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -447,13 +447,13 @@ if (VERBOSE)
|
||||||
message(STATUS)
|
message(STATUS)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "${BASE_FLAGS} ${BASE_C_FLAGS}")
|
set(CMAKE_C_FLAGS "${BASE_FLAGS} ${BASE_C_FLAGS} ${CMAKE_C_FLAGS}")
|
||||||
set(CMAKE_C_FLAGS_DEBUG "${BASE_FLAGS} ${BASE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG}")
|
set(CMAKE_C_FLAGS_DEBUG "${BASE_FLAGS} ${BASE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG}")
|
||||||
set(CMAKE_C_FLAGS_RELEASE "${BASE_FLAGS} ${BASE_C_FLAGS} ${CMAKE_C_FLAGS_RELEASE}")
|
set(CMAKE_C_FLAGS_RELEASE "${BASE_FLAGS} ${BASE_C_FLAGS} ${CMAKE_C_FLAGS_RELEASE}")
|
||||||
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${BASE_FLAGS} ${BASE_C_FLAGS} ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
set(CMAKE_C_FLAGS_RELWITHDEBINFO "${BASE_FLAGS} ${BASE_C_FLAGS} ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
||||||
set(CMAKE_C_FLAGS_MINSIZEREL "${BASE_FLAGS} ${BASE_C_FLAGS} ${CMAKE_C_FLAGS_MINSIZEREL}")
|
set(CMAKE_C_FLAGS_MINSIZEREL "${BASE_FLAGS} ${BASE_C_FLAGS} ${CMAKE_C_FLAGS_MINSIZEREL}")
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "${BASE_FLAGS} ${BASE_CXX_FLAGS}")
|
set(CMAKE_CXX_FLAGS "${BASE_FLAGS} ${BASE_CXX_FLAGS} ${CMAKE_CXX_FLAGS}")
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "${BASE_FLAGS} ${BASE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}")
|
set(CMAKE_CXX_FLAGS_DEBUG "${BASE_FLAGS} ${BASE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG}")
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "${BASE_FLAGS} ${BASE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}")
|
set(CMAKE_CXX_FLAGS_RELEASE "${BASE_FLAGS} ${BASE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE}")
|
||||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${BASE_FLAGS} ${BASE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${BASE_FLAGS} ${BASE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||||
|
|
|
@ -52,8 +52,7 @@ help:
|
||||||
@echo " -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl"
|
@echo " -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl"
|
||||||
@echo " sets the location of the openssl includes and libraries"
|
@echo " sets the location of the openssl includes and libraries"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "BOOST supports:"
|
@echo "TCMALLOC supports:"
|
||||||
@echo ""
|
|
||||||
@echo " -DUSE_TCMALLOC=on"
|
@echo " -DUSE_TCMALLOC=on"
|
||||||
@echo " if ON, link against TCMALLOC"
|
@echo " if ON, link against TCMALLOC"
|
||||||
@echo ""
|
@echo ""
|
||||||
|
|
Loading…
Reference in New Issue