From b01d0518d63cca451e2f0e88dc0d1cee2474fa7b Mon Sep 17 00:00:00 2001 From: haozi007 Date: Mon, 28 Aug 2023 20:10:13 +0800 Subject: [PATCH 123/145] improve by code check of cpp Signed-off-by: haozi007 --- src/daemon/entry/cri/errors.cc | 1 + src/daemon/entry/cri/errors.h | 2 +- src/utils/cpputils/cxxutils.cc | 10 ++++---- src/utils/cpputils/read_write_lock.h | 2 -- src/utils/cpputils/stoppable_thread.h | 1 - src/utils/cpputils/url.cc | 37 +++++++++++++++------------ src/utils/cutils/utils_file.h | 2 -- src/utils/cutils/utils_timestamp.h | 2 -- src/utils/http/rest_common.h | 2 -- src/utils/tar/isulad_tar.c | 3 ++- src/utils/tar/isulad_tar.h | 2 -- src/utils/tar/util_archive.c | 9 ++++--- src/utils/tar/util_archive.h | 2 -- 13 files changed, 35 insertions(+), 40 deletions(-) diff --git a/src/daemon/entry/cri/errors.cc b/src/daemon/entry/cri/errors.cc index 3dc3bba6..e0fdc7f7 100644 --- a/src/daemon/entry/cri/errors.cc +++ b/src/daemon/entry/cri/errors.cc @@ -50,6 +50,7 @@ std::string &Errors::GetMessage() return m_message; } +// never save return pointer, we just use for printf of logging const char *Errors::GetCMessage() const { return m_message.empty() ? "" : m_message.c_str(); diff --git a/src/daemon/entry/cri/errors.h b/src/daemon/entry/cri/errors.h index 193a9523..33be6d77 100644 --- a/src/daemon/entry/cri/errors.h +++ b/src/daemon/entry/cri/errors.h @@ -25,7 +25,7 @@ public: : m_message(copy.m_message), m_code(copy.m_code) { } - Errors &operator=(const Errors &); + Errors &operator=(const Errors &other); virtual ~Errors(); void Clear(); diff --git a/src/utils/cpputils/cxxutils.cc b/src/utils/cpputils/cxxutils.cc index 777c52e7..b4fb3c3f 100644 --- a/src/utils/cpputils/cxxutils.cc +++ b/src/utils/cpputils/cxxutils.cc @@ -19,13 +19,13 @@ namespace CXXUtils { std::vector Split(const std::string &str, char delimiter) { - std::vector ret_vec; - std::string tmpstr; + std::vector retVec; + std::string tmpStr; std::istringstream istream(str); - while (std::getline(istream, tmpstr, delimiter)) { - ret_vec.push_back(tmpstr); + while (std::getline(istream, tmpStr, delimiter)) { + retVec.push_back(tmpStr); } - return ret_vec; + return retVec; } // Join concatenates the elements of a to create a single string. The separator string diff --git a/src/utils/cpputils/read_write_lock.h b/src/utils/cpputils/read_write_lock.h index 0149e3a5..047d459f 100644 --- a/src/utils/cpputils/read_write_lock.h +++ b/src/utils/cpputils/read_write_lock.h @@ -15,10 +15,8 @@ #ifndef UTILS_CPPUTILS_READ_WRITE_LOCK_H #define UTILS_CPPUTILS_READ_WRITE_LOCK_H -#include #include #include -#include class RWMutex { public: diff --git a/src/utils/cpputils/stoppable_thread.h b/src/utils/cpputils/stoppable_thread.h index f5f4fb3f..dada6b50 100644 --- a/src/utils/cpputils/stoppable_thread.h +++ b/src/utils/cpputils/stoppable_thread.h @@ -16,7 +16,6 @@ #define UTILS_CPPUTILS_STOPPABLE_THREAD_H #include -#include #include #include #include diff --git a/src/utils/cpputils/url.cc b/src/utils/cpputils/url.cc index 49843644..03ff2653 100644 --- a/src/utils/cpputils/url.cc +++ b/src/utils/cpputils/url.cc @@ -31,6 +31,7 @@ bool GetHexDigit(char c, char &d) if (c >= '0' && c <= '9') { d = c - '0'; } else if (c >= 'a' && c <= 'f') { + // 10 equal to a in hex d = c - 'a' + 10; } else { d = c - 'A' + 10; @@ -104,7 +105,7 @@ std::string QueryUnescape(const std::string &s) int UnescapeDealWithPercentSign(size_t &i, std::string &s, const EncodeMode &mode) { - std::string percent_sign = "%25"; + std::string percentSign = "%25"; // URL encoding replaces unsafe ASCII characters with a "%" followed by two hexadecimal digits if ((size_t)(i + 2) >= s.length() || !IsHex(s[i + 1]) || !IsHex(s[i + 2])) { s.erase(s.begin(), s.begin() + (long)i); @@ -119,15 +120,16 @@ int UnescapeDealWithPercentSign(size_t &i, std::string &s, const EncodeMode &mod if (!GetHexDigit(s[i + 1], s1) || !GetHexDigit(s[i + 2], s2)) { return -1; } + // for 3 bit hex, max value is 8 if (mode == EncodeMode::ENCODE_HOST && s1 < 8 && - std::string(s.begin() + (long)i, s.begin() + (long)i + 3) != percent_sign) { - ERROR("invalid URL escape %s", std::string(s.begin() + (long)i, s.begin() + (long)i + 3).c_str()); + std::string(s.begin() + static_cast(i), s.begin() + static_cast(i+3)) != percentSign) { + ERROR("invalid URL escape %s", std::string(s.begin() + static_cast(i), s.begin() + static_cast(i + 3)).c_str()); return -1; } if (mode == EncodeMode::ENCODE_ZONE) { char v = static_cast((static_cast(s1) << 4) | static_cast(s2)); - if (std::string(s.begin() + static_cast(i), s.begin() + static_cast(i) + 3) != percent_sign && v != ' ' && - ShouldEscape(v, EncodeMode::ENCODE_HOST)) { + if (std::string(s.begin() + static_cast(i), s.begin() + static_cast(i) + 3) != percentSign && + v != ' ' && ShouldEscape(v, EncodeMode::ENCODE_HOST)) { ERROR("invalid URL escape %s", std::string(s.begin() + static_cast(i), s.begin() + static_cast(i) + 3).c_str()); return -1; @@ -178,7 +180,8 @@ void DoUnescape(std::string &t, const std::string &s, const EncodeMode &mode) if (!GetHexDigit(s[i + 1], s1) || !GetHexDigit(s[i + 2], s2)) { return; } - t[j++] = (char)(((unsigned char)s1 << 4) | (unsigned char)s2); + // we use 4 high bit of 1 + 4 low bit of s2 to create new char + t[j++] = (char)((static_cast(s1) << 4) | static_cast(s2)); i += 3; } break; @@ -249,7 +252,9 @@ std::string Escape(const std::string &s, const EncodeMode &mode) t[j++] = '+'; } else if (ShouldEscape(c, mode)) { t[j] = '%'; - t[j + 1] = "0123456789ABCDEF"[(unsigned char)c >> 4]; + // get 4 high bit of c + t[j + 1] = "0123456789ABCDEF"[static_cast(c) >> 4]; + // get 4 low bit of c t[j + 2] = "0123456789ABCDEF"[c & 15]; j += 3; } else { @@ -288,8 +293,8 @@ int Getscheme(const std::string &rawurl, std::string &scheme, std::string &path) ERROR("missing protocol scheme"); return -1; } - scheme = std::string(rawurl.begin(), rawurl.begin() + (long)i); - path = std::string(rawurl.begin() + (long)i + 1, rawurl.end()); + scheme = std::string(rawurl.begin(), rawurl.begin() + static_cast(i)); + path = std::string(rawurl.begin() + static_cast(i + 1), rawurl.end()); return 0; } else { scheme = ""; @@ -355,25 +360,25 @@ int SplitOffPossibleLeading(std::string &scheme, const std::string &rawurl, URLD } URLDatum *HandleNonBackslashPrefix(URLDatum *url, const std::string &scheme, const std::string &rest, bool viaRequest, - bool &should_ret) + bool &shouldRet) { if (rest.at(0) == '/') { return nullptr; } if (!scheme.empty()) { - should_ret = true; + shouldRet = true; url->SetOpaque(rest); return url; } if (viaRequest) { - should_ret = true; + shouldRet = true; ERROR("invalid URI for request"); return nullptr; } size_t colon = rest.find(":"); size_t slash = rest.find("/"); if (colon != std::string::npos && (slash == std::string::npos || colon < slash)) { - should_ret = true; + shouldRet = true; ERROR("first path segment in URL cannot contain colon"); return nullptr; } @@ -420,9 +425,9 @@ URLDatum *Parse(const std::string &rawurl, bool viaRequest) if (SplitOffPossibleLeading(scheme, rawurl, url, rest) != 0) { return nullptr; } - bool should_ret = false; - auto *tmpret = HandleNonBackslashPrefix(url, scheme, rest, viaRequest, should_ret); - if (should_ret) { + bool shouldRet = false; + auto *tmpret = HandleNonBackslashPrefix(url, scheme, rest, viaRequest, shouldRet); + if (shouldRet) { return tmpret; } if (SetURLDatumInfo(url, scheme, viaRequest, rest) != 0) { diff --git a/src/utils/cutils/utils_file.h b/src/utils/cutils/utils_file.h index 9bf60c6c..aca066ab 100644 --- a/src/utils/cutils/utils_file.h +++ b/src/utils/cutils/utils_file.h @@ -22,8 +22,6 @@ #include #include -struct dirent; - #ifdef __cplusplus extern "C" { #endif diff --git a/src/utils/cutils/utils_timestamp.h b/src/utils/cutils/utils_timestamp.h index 2e93a215..4bfe796d 100644 --- a/src/utils/cutils/utils_timestamp.h +++ b/src/utils/cutils/utils_timestamp.h @@ -20,8 +20,6 @@ #include #include -struct tm; - #ifdef __cplusplus extern "C" { #endif diff --git a/src/utils/http/rest_common.h b/src/utils/http/rest_common.h index aebc48c0..6363e67d 100644 --- a/src/utils/http/rest_common.h +++ b/src/utils/http/rest_common.h @@ -21,8 +21,6 @@ #include "http/http.h" #include "parser.h" -struct parsed_http_message; - #ifdef __cplusplus extern "C" { #endif diff --git a/src/utils/tar/isulad_tar.c b/src/utils/tar/isulad_tar.c index 48ac96da..709dfdd9 100644 --- a/src/utils/tar/isulad_tar.c +++ b/src/utils/tar/isulad_tar.c @@ -23,10 +23,11 @@ #include #include +#include + #include "stdbool.h" #include "utils.h" #include "path.h" -#include "isula_libutils/log.h" #include "error.h" #include "isula_libutils/json_common.h" #include "util_archive.h" diff --git a/src/utils/tar/isulad_tar.h b/src/utils/tar/isulad_tar.h index ec085c25..b620fd02 100644 --- a/src/utils/tar/isulad_tar.h +++ b/src/utils/tar/isulad_tar.h @@ -25,8 +25,6 @@ #include "io_wrapper.h" -struct io_read_wrapper; - #ifdef __cplusplus extern "C" { #endif diff --git a/src/utils/tar/util_archive.c b/src/utils/tar/util_archive.c index 19e6a6b1..a9d0025b 100644 --- a/src/utils/tar/util_archive.c +++ b/src/utils/tar/util_archive.c @@ -21,20 +21,21 @@ #include #include #include +#include +#include #include #include #include #include +#include #include #include #include #include -#include -#include -#include "stdbool.h" +#include + #include "utils.h" -#include "isula_libutils/log.h" #include "io_wrapper.h" #include "utils_file.h" #include "map.h" diff --git a/src/utils/tar/util_archive.h b/src/utils/tar/util_archive.h index 30f35e19..9312235d 100644 --- a/src/utils/tar/util_archive.h +++ b/src/utils/tar/util_archive.h @@ -26,8 +26,6 @@ #define ARCHIVE_BLOCK_SIZE (32 * 1024) -struct io_read_wrapper; - #ifdef __cplusplus extern "C" { #endif -- 2.40.1