From c7f92183503643629942b7cd75482b0651723ae4 Mon Sep 17 00:00:00 2001 From: Matthieu Gautier Date: Thu, 6 Sep 2018 15:02:17 +0200 Subject: [PATCH] base64_encode takes a string instead of a char* --- include/common/base64.h | 4 ++-- src/android/kiwixreader.cpp | 3 +-- src/common/base64.cpp | 4 +++- src/manager.cpp | 2 +- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/include/common/base64.h b/include/common/base64.h index 65d5db8b2..dc13f8a4f 100644 --- a/include/common/base64.h +++ b/include/common/base64.h @@ -1,4 +1,4 @@ #include -std::string base64_encode(unsigned char const* , unsigned int len); -std::string base64_decode(std::string const& s); +std::string base64_encode(const std::string& inString); +std::string base64_decode(const std::string& s); diff --git a/src/android/kiwixreader.cpp b/src/android/kiwixreader.cpp index b1f24cd5f..bc58cd87e 100644 --- a/src/android/kiwixreader.cpp +++ b/src/android/kiwixreader.cpp @@ -163,8 +163,7 @@ Java_org_kiwix_kiwixlib_JNIKiwixReader_getFavicon(JNIEnv* env, jobject obj) std::string cMime; READER->getFavicon(cContent, cMime); favicon = c2jni( - base64_encode(reinterpret_cast(cContent.c_str()), - cContent.length()), + base64_encode(cContent), env); } catch (std::exception& e) { __android_log_print(ANDROID_LOG_ERROR, "kiwix", "Unable to get ZIM favicon"); diff --git a/src/common/base64.cpp b/src/common/base64.cpp index e8889a6b0..c2f7538d6 100644 --- a/src/common/base64.cpp +++ b/src/common/base64.cpp @@ -37,8 +37,10 @@ static inline bool is_base64(unsigned char c) { return (isalnum(c) || (c == '+') || (c == '/')); } -std::string base64_encode(unsigned char const* bytes_to_encode, unsigned int in_len) { +std::string base64_encode(const std::string& inString) { std::string ret; + auto in_len = inString.size(); + const unsigned char* bytes_to_encode = reinterpret_cast(inString.data()); int i = 0; int j = 0; unsigned char char_array_3[3]; diff --git a/src/manager.cpp b/src/manager.cpp index b84ad76c5..0658c1293 100644 --- a/src/manager.cpp +++ b/src/manager.cpp @@ -135,7 +135,7 @@ bool Manager::parseOpdsDom(const pugi::xml_document& doc, const std::string& url auto fileHandle = downloader.download(faviconUrl); if (fileHandle.success) { auto content = getFileContent(fileHandle.path); - book.setFavicon(base64_encode((const unsigned char*)content.data(), content.size())); + book.setFavicon(base64_encode(content)); book.setFaviconMimeType(linkNode.attribute("type").value()); } else { std::cerr << "Cannot get favicon content from " << faviconUrl << std::endl;