diff --git a/src/eitd/xmlutil.cpp b/src/eitd/xmlutil.cpp index eec33e88c..35f38e6b1 100644 --- a/src/eitd/xmlutil.cpp +++ b/src/eitd/xmlutil.cpp @@ -645,9 +645,7 @@ void *insertEventsfromXMLTV(void * data) } std::string url = (char *) data; std::string url_ext = getFileExt(url); - - std::string tmp_name = "/tmp/.xmltv"; - tmp_name = tmp_name + "." + url_ext; + std::string tmp_name = genTmpName(url_ext,8); int64_t now = time_monotonic_ms(); diff --git a/src/system/helpers.cpp b/src/system/helpers.cpp index 731a7fa3e..a255a56ca 100644 --- a/src/system/helpers.cpp +++ b/src/system/helpers.cpp @@ -1527,6 +1527,25 @@ bool utf8_check_is_valid(const std::string &str) return true; } +std::string genTmpName(std::string suffix,unsigned int length) +{ + const char alphanum[] = + "0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz"; + int stringLength = sizeof(alphanum) - 1; + std::string Str; + unsigned int i; + Str.append("/tmp/"); + for( i = 0; i < length; ++i) + { + Str += alphanum[rand() % stringLength]; + } + Str += "."; + Str += suffix; + return Str; +} + // curl static void *myrealloc(void *ptr, size_t size) { diff --git a/src/system/helpers.h b/src/system/helpers.h index 72b955852..997b85c2f 100644 --- a/src/system/helpers.h +++ b/src/system/helpers.h @@ -159,6 +159,8 @@ std::string readFile(std::string file); std::string iso_8859_1_to_utf8(std::string &str); bool utf8_check_is_valid(const std::string &str); +std::string genTmpName(std::string suffix,unsigned int length); + // curl struct MemoryStruct { char *memory; diff --git a/src/zapit/src/bouquets.cpp b/src/zapit/src/bouquets.cpp index b98724c8d..4f6efa93a 100644 --- a/src/zapit/src/bouquets.cpp +++ b/src/zapit/src/bouquets.cpp @@ -842,9 +842,7 @@ void CBouquetManager::loadWebchannels(int mode) { std::string filename = (*it); std::string extension = getFileExt(filename); - - std::string tmp_name = "/tmp/.webchannel"; - tmp_name = tmp_name + "." + extension; + std::string tmp_name = genTmpName(extension,8); bool remove_tmp = false; if (filename.compare(0, 1, "/") == 0)