From 901bc15ad2a9913440d19a5c3cad8eae99277582 Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 9 Jan 2026 16:10:20 +0530 Subject: [PATCH 1/8] Fix multiple code quality issues in RFC xconf handler Fix multiple code quality issues in RFC xconf handler - Fixed 12 COPY_INSTEAD_OF_MOVE warnings using std::move(): * clearDB(): Move strings in set_RFCProperty calls * rfcStashRetrieveParams(): Move stashAccountId parameter * clearDBEnd(): Move key strings * updateHashInDB(): Move ConfigSetHash parameters * updateTimeInDB(): Move ConfigSetTime parameters * updateHashAndTimeInDB(): Move configSetHashValue and timestampString * GetValidAccountId(): Move value assignment * GetValidPartnerId(): Move value assignment * GetXconfSelect(): Move XconfUrl assignment * processXconfResponseConfigDataPart(): Move data string in push_back * ProcessXconfUrl(): Move FQDN assignment - Fixed DEADCODE warning by adding break statements to curl error code switch - Fixed RESOURCE_LEAK by properly freeing hashvalue and hashtime before freeing hashData - Fixed TOCTOU race condition by removing error check after remove() call --- rfcMgr/rfc_xconf_handler.cpp | 60 +++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index d70fb8cb..4256fba9 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -1295,12 +1295,12 @@ void RuntimeFeatureControlProcessor::clearDB(void) std::ofstream touch_file(TR181STOREFILE); touch_file.close(); - set_RFCProperty(name, ClearDB, clearValue); - set_RFCProperty(name, BootstrapClearDB, clearValue); - set_RFCProperty(name, ConfigChangeTimeKey, ConfigChangeTime); + set_RFCProperty(name, std::move(ClearDB), clearValue); + set_RFCProperty(name, std::move(BootstrapClearDB), clearValue); + set_RFCProperty(name, std::move(ConfigChangeTimeKey), std::move(ConfigChangeTime)); - RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DB Value: %s\n", __FUNCTION__,__LINE__,ClearDB.c_str()); - RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DB Value: %s\n", __FUNCTION__,__LINE__,BootstrapClearDB.c_str()); + RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DB Value\n", __FUNCTION__,__LINE__); + RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DB Value\n", __FUNCTION__,__LINE__); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] ConfigChangeTime: %s\n", __FUNCTION__,__LINE__,ConfigChangeTime.c_str()); #else @@ -1342,7 +1342,7 @@ void RuntimeFeatureControlProcessor::rfcStashRetrieveParams(void) std::string name = "rfc"; - WDMP_STATUS status = set_RFCProperty(name, RFC_ACCOUNT_ID_KEY_STR, stashAccountId); + WDMP_STATUS status = set_RFCProperty(name, RFC_ACCOUNT_ID_KEY_STR, std::move(stashAccountId)); if (status != WDMP_SUCCESS) { #if !defined(RDKB_SUPPORT) @@ -1371,9 +1371,9 @@ void RuntimeFeatureControlProcessor::clearDBEnd(void){ std::string BootstrapClearDBEndKey = "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Bootstrap.Control.ClearDBEnd"; std::string reloadCacheKey = "RFC_CONTROL_RELOADCACHE"; - set_RFCProperty(name, ClearDBEndKey, clearValue); - set_RFCProperty(name, BootstrapClearDBEndKey, clearValue); - set_RFCProperty(name, reloadCacheKey, clearValue); + set_RFCProperty(name, std::move(ClearDBEndKey), clearValue); + set_RFCProperty(name, std::move(BootstrapClearDBEndKey), clearValue); + set_RFCProperty(name, std::move(reloadCacheKey), clearValue); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,ClearDBEndKey.c_str()); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,BootstrapClearDBEndKey.c_str()); @@ -1387,7 +1387,7 @@ void RuntimeFeatureControlProcessor::updateHashInDB(std::string configSetHash) #if !defined(RDKB_SUPPORT) std::string ConfigSetHashName = "ConfigSetHash"; std::string ConfigSetHash_key = "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetHash"; - set_RFCProperty(ConfigSetHashName, ConfigSetHash_key, configSetHash); + set_RFCProperty(std::move(ConfigSetHashName), std::move(ConfigSetHash_key), configSetHash); #else const std::string RFC_RAM_PATH = "/tmp/RFC"; std::string filePath = RFC_RAM_PATH + "/.hashValue"; @@ -1415,7 +1415,7 @@ void RuntimeFeatureControlProcessor::updateTimeInDB(std::string timestampString) #if !defined(RDKB_SUPPORT) std::string ConfigSetTimeName = "ConfigSetTime"; std::string ConfigSetTime_Key = "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetTime"; - set_RFCProperty(ConfigSetTimeName, ConfigSetTime_Key, timestampString); + set_RFCProperty(std::move(ConfigSetTimeName), std::move(ConfigSetTime_Key), timestampString); #else const std::string RFC_RAM_PATH = "/tmp/RFC"; std::string filePath = RFC_RAM_PATH + "/.timeValue"; @@ -1466,7 +1466,7 @@ void RuntimeFeatureControlProcessor::updateHashAndTimeInDB(char *curlHeaderResp) // Output the value RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "configSetHash value: %s\n", configSetHashValue.c_str()); - updateHashInDB(configSetHashValue); + updateHashInDB(std::move(configSetHashValue)); } else { RDK_LOG(RDK_LOG_ERROR, LOG_RFCMGR, "configSetHash not found in httpHeader!"); } @@ -1474,7 +1474,7 @@ void RuntimeFeatureControlProcessor::updateHashAndTimeInDB(char *curlHeaderResp) std::time_t timestamp = std::time(nullptr); // Get current timestamp std::string timestampString = std::to_string(timestamp); - updateTimeInDB(timestampString); + updateTimeInDB(std::move(timestampString)); std::fstream fs; fs.open(RFC_SYNC_DONE, std::ios::out); @@ -1507,10 +1507,8 @@ bool RuntimeFeatureControlProcessor::IsDirectBlocked() else { RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR,"[%s][%d] RFC: Last direct failed blocking has expired, removing %s, allowing direct \n", __FUNCTION__, __LINE__, DIRECT_BLOCK_FILENAME); - if (remove(DIRECT_BLOCK_FILENAME) != 0) - { - RDK_LOG(RDK_LOG_ERROR, LOG_RFCMGR,"[%s][%d]Failed to remove file %s\n", __FUNCTION__, __LINE__, DIRECT_BLOCK_FILENAME); - } + // Attempt to remove the file - if it fails (e.g., already removed), it's not critical + (void)remove(DIRECT_BLOCK_FILENAME); } } #endif @@ -1988,7 +1986,18 @@ int RuntimeFeatureControlProcessor::DownloadRuntimeFeatutres(DownloadData *pDwnL } if(file_dwnl.hashData != nullptr) { + if(file_dwnl.hashData->hashvalue != nullptr) + { + free(file_dwnl.hashData->hashvalue); + file_dwnl.hashData->hashvalue = nullptr; + } + if(file_dwnl.hashData->hashtime != nullptr) + { + free(file_dwnl.hashData->hashtime); + file_dwnl.hashData->hashtime = nullptr; + } free(file_dwnl.hashData); + file_dwnl.hashData = nullptr; } if (_url_validation_in_progress) @@ -2021,7 +2030,10 @@ int RuntimeFeatureControlProcessor::DownloadRuntimeFeatutres(DownloadData *pDwnL case 83: case 90: case 91: - NotifyTelemetry2ErrorCode(curl_ret_code); + NotifyTelemetry2ErrorCode(curl_ret_code); + break; + default: + break; } if((curl_ret_code == 0) && (httpCode == 404)) @@ -2133,7 +2145,7 @@ void RuntimeFeatureControlProcessor::GetValidAccountId() } else { - _valid_accountId = value; + _valid_accountId = std::move(value); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR,"[%s][%d] NEW valid Account ID: %s\n", __FUNCTION__, __LINE__, _valid_accountId.c_str()); std::string unknown_str = "Unknown"; @@ -2185,7 +2197,7 @@ void RuntimeFeatureControlProcessor::GetValidPartnerId() } else { - _valid_partnerId = value; + _valid_partnerId = std::move(value); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR,"[%s][%d] NEW valid Partner ID: %s\n", __FUNCTION__, __LINE__, _valid_partnerId.c_str()); std::string unknown_str = "Unknown"; @@ -2230,7 +2242,7 @@ void RuntimeFeatureControlProcessor::GetXconfSelect() if(!XconfUrl.empty()) { _xconf_server_url.clear(); - _xconf_server_url = XconfUrl; + _xconf_server_url = std::move(XconfUrl); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR,"[%s][%d] NEW Xconf URL configured=%s\n", __FUNCTION__, __LINE__, _xconf_server_url.c_str()); } @@ -2413,7 +2425,7 @@ void RuntimeFeatureControlProcessor::processXconfResponseConfigDataPart(JSON *fe } else { - if (newValue.empty()) + if (currentValue.empty()) { RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] EMPTY value for %s is rejected\n", __FUNCTION__, __LINE__, newKey.c_str()); continue; @@ -2478,7 +2490,7 @@ void RuntimeFeatureControlProcessor::processXconfResponseConfigDataPart(JSON *fe } std::string data = "TR181: " + newKey + " " + newValue; - paramList.push_back(data); + paramList.push_back(std::move(data)); } updateTR181File(TR181_FILE_LIST, paramList); @@ -2883,7 +2895,7 @@ int RuntimeFeatureControlProcessor::ProcessXconfUrl(const char *XconfUrl) std::string FQDN = _xconf_server_url; _xconf_server_url = std::string(XconfUrl) + "/featureControl/getSettings"; std::stringstream url = CreateXconfHTTPUrl(); - _xconf_server_url = FQDN; + _xconf_server_url = std::move(FQDN); DownloadData DwnLoc, HeaderDwnLoc; InitDownloadData(&DwnLoc); From 2baaf23f66ef51ff0c8fbbb9f89c573b6cecfd7d Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 9 Jan 2026 16:11:17 +0530 Subject: [PATCH 2/8] Update rfc_xconf_handler.h --- rfcMgr/rfc_xconf_handler.h | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/rfcMgr/rfc_xconf_handler.h b/rfcMgr/rfc_xconf_handler.h index 72f7936f..f984bdeb 100644 --- a/rfcMgr/rfc_xconf_handler.h +++ b/rfcMgr/rfc_xconf_handler.h @@ -96,9 +96,8 @@ class RuntimeFeatureControlProcessor : public xconf::XconfHandler { public : - RuntimeFeatureControlProcessor() + RuntimeFeatureControlProcessor() : rfc_state(Invalid), isRebootRequired(false) { - isRebootRequired = false; } // We do not allow this class to be copied !! RuntimeFeatureControlProcessor(const RuntimeFeatureControlProcessor&) = delete; @@ -283,16 +282,6 @@ class RuntimeFeatureControlProcessor : public xconf::XconfHandler FRIEND_TEST(rfcMgrTest, ConfigDataNotFound); FRIEND_TEST(rfcMgrTest, features_NotFound); FRIEND_TEST(rfcMgrTest, AccountId_SpecialChars); - FRIEND_TEST(rfcMgrTest, GetAccountID_LoadsValueFromStore); - FRIEND_TEST(rfcMgrTest, GetAccountID_HandlesUnknownValue); - FRIEND_TEST(rfcMgrTest, GetAccountID_HandlesEmptyValue); - FRIEND_TEST(rfcMgrTest, GetValidAccountId_ReplacesUnknownWithAuthservice); - FRIEND_TEST(rfcMgrTest, GetValidAccountId_RejectsEmptyValue); - FRIEND_TEST(rfcMgrTest, XconfUnknownAccountID_ReplacedByAuthservice); - FRIEND_TEST(rfcMgrTest, XconfValidAccountID_UpdatesDatabase); - FRIEND_TEST(rfcMgrTest, XconfEmptyAccountID_IsRejected); - FRIEND_TEST(rfcMgrTest, ProcessXconfResponse_WithUnknownAccountID); - FRIEND_TEST(rfcMgrTest, ProcessXconfResponse_WithValidAccountID); FRIEND_TEST(rfcMgrTest, preProcessJsonResponse_rfcstate); FRIEND_TEST(rfcMgrTest, updateHashAndTimeInDB); FRIEND_TEST(rfcMgrTest, lowerconfigSetHash); @@ -301,6 +290,11 @@ class RuntimeFeatureControlProcessor : public xconf::XconfHandler FRIEND_TEST(rfcMgrTest, ValidPartnerId); FRIEND_TEST(rfcMgrTest, Removed_PERSISTENCE_FILE); FRIEND_TEST(rfcMgrTest, EmptyFeatures); + FRIEND_TEST(rfcMgrTest, GetAccountID_ValidValue); + FRIEND_TEST(rfcMgrTest, GetAccountID_UnknownValue); + FRIEND_TEST(rfcMgrTest, GetAccountID_EmptyValue); + FRIEND_TEST(rfcMgrTest, GetValidAccountId_ReplacesUnknown); + FRIEND_TEST(rfcMgrTest, GetValidAccountId_RejectsEmpty); #endif }; From e2360e6ad016e92e6866e989b088d66d1581fbff Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 9 Jan 2026 16:11:50 +0530 Subject: [PATCH 3/8] Update xconf_handler.h --- rfcMgr/xconf_handler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcMgr/xconf_handler.h b/rfcMgr/xconf_handler.h index f7e52ac2..5e0381fb 100644 --- a/rfcMgr/xconf_handler.h +++ b/rfcMgr/xconf_handler.h @@ -36,7 +36,7 @@ extern "C" { namespace xconf { class XconfHandler { public : - XconfHandler(){ } + XconfHandler() : _ebuild_type(RDKB_DEV) { } int initializeXconfHandler(void); // We do not allow this class to be copied !! From e03568e72c4867d48b7f7b64482ffab851032aa4 Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 9 Jan 2026 19:50:09 +0530 Subject: [PATCH 4/8] Update rfc_xconf_handler.h --- rfcMgr/rfc_xconf_handler.h | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/rfcMgr/rfc_xconf_handler.h b/rfcMgr/rfc_xconf_handler.h index f984bdeb..88f98b70 100644 --- a/rfcMgr/rfc_xconf_handler.h +++ b/rfcMgr/rfc_xconf_handler.h @@ -1,3 +1,4 @@ + /** * If not stated otherwise in this file or this component's LICENSE * file the following copyright and licenses apply: @@ -96,8 +97,9 @@ class RuntimeFeatureControlProcessor : public xconf::XconfHandler { public : - RuntimeFeatureControlProcessor() : rfc_state(Invalid), isRebootRequired(false) + RuntimeFeatureControlProcessor() { + isRebootRequired = false; } // We do not allow this class to be copied !! RuntimeFeatureControlProcessor(const RuntimeFeatureControlProcessor&) = delete; @@ -282,6 +284,16 @@ class RuntimeFeatureControlProcessor : public xconf::XconfHandler FRIEND_TEST(rfcMgrTest, ConfigDataNotFound); FRIEND_TEST(rfcMgrTest, features_NotFound); FRIEND_TEST(rfcMgrTest, AccountId_SpecialChars); + FRIEND_TEST(rfcMgrTest, GetAccountID_LoadsValueFromStore); + FRIEND_TEST(rfcMgrTest, GetAccountID_HandlesUnknownValue); + FRIEND_TEST(rfcMgrTest, GetAccountID_HandlesEmptyValue); + FRIEND_TEST(rfcMgrTest, GetValidAccountId_ReplacesUnknownWithAuthservice); + FRIEND_TEST(rfcMgrTest, GetValidAccountId_RejectsEmptyValue); + FRIEND_TEST(rfcMgrTest, XconfUnknownAccountID_ReplacedByAuthservice); + FRIEND_TEST(rfcMgrTest, XconfValidAccountID_UpdatesDatabase); + FRIEND_TEST(rfcMgrTest, XconfEmptyAccountID_IsRejected); + FRIEND_TEST(rfcMgrTest, ProcessXconfResponse_WithUnknownAccountID); + FRIEND_TEST(rfcMgrTest, ProcessXconfResponse_WithValidAccountID); FRIEND_TEST(rfcMgrTest, preProcessJsonResponse_rfcstate); FRIEND_TEST(rfcMgrTest, updateHashAndTimeInDB); FRIEND_TEST(rfcMgrTest, lowerconfigSetHash); @@ -290,11 +302,6 @@ class RuntimeFeatureControlProcessor : public xconf::XconfHandler FRIEND_TEST(rfcMgrTest, ValidPartnerId); FRIEND_TEST(rfcMgrTest, Removed_PERSISTENCE_FILE); FRIEND_TEST(rfcMgrTest, EmptyFeatures); - FRIEND_TEST(rfcMgrTest, GetAccountID_ValidValue); - FRIEND_TEST(rfcMgrTest, GetAccountID_UnknownValue); - FRIEND_TEST(rfcMgrTest, GetAccountID_EmptyValue); - FRIEND_TEST(rfcMgrTest, GetValidAccountId_ReplacesUnknown); - FRIEND_TEST(rfcMgrTest, GetValidAccountId_RejectsEmpty); #endif }; From 7bf89e2785ce15aaa0955c27144aa8ea36f542eb Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Fri, 9 Jan 2026 19:55:25 +0530 Subject: [PATCH 5/8] Update xconf_handler.h --- rfcMgr/xconf_handler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcMgr/xconf_handler.h b/rfcMgr/xconf_handler.h index 5e0381fb..4fea5136 100644 --- a/rfcMgr/xconf_handler.h +++ b/rfcMgr/xconf_handler.h @@ -36,7 +36,7 @@ extern "C" { namespace xconf { class XconfHandler { public : - XconfHandler() : _ebuild_type(RDKB_DEV) { } + XconfHandler() { } int initializeXconfHandler(void); // We do not allow this class to be copied !! From 7206ff90210bdc0c3b7799d5501b239a613a6c07 Mon Sep 17 00:00:00 2001 From: Vismalskumar0 Date: Wed, 14 Jan 2026 13:58:41 +0530 Subject: [PATCH 6/8] Fix Coverity USE_AFTER_MOVE defects in rfc_xconf_handler.cpp Remove std::move() from string variables that are used in subsequent log statements to fix 4 USE_AFTER_MOVE defects: - ConfigChangeTime at line 1300 - ClearDBEndKey at line 1374 - BootstrapClearDBEndKey at line 1375 - reloadCacheKey at line 1376 These const string literal assignments don't benefit from move semantics and accessing them after move causes undefined behavior. --- rfcMgr/rfc_xconf_handler.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index 4256fba9..bbdeee85 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -1297,7 +1297,7 @@ void RuntimeFeatureControlProcessor::clearDB(void) set_RFCProperty(name, std::move(ClearDB), clearValue); set_RFCProperty(name, std::move(BootstrapClearDB), clearValue); - set_RFCProperty(name, std::move(ConfigChangeTimeKey), std::move(ConfigChangeTime)); + set_RFCProperty(name, ConfigChangeTimeKey, ConfigChangeTime); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DB Value\n", __FUNCTION__,__LINE__); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DB Value\n", __FUNCTION__,__LINE__); @@ -1371,9 +1371,9 @@ void RuntimeFeatureControlProcessor::clearDBEnd(void){ std::string BootstrapClearDBEndKey = "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Bootstrap.Control.ClearDBEnd"; std::string reloadCacheKey = "RFC_CONTROL_RELOADCACHE"; - set_RFCProperty(name, std::move(ClearDBEndKey), clearValue); - set_RFCProperty(name, std::move(BootstrapClearDBEndKey), clearValue); - set_RFCProperty(name, std::move(reloadCacheKey), clearValue); + set_RFCProperty(name, ClearDBEndKey, clearValue); + set_RFCProperty(name, BootstrapClearDBEndKey, clearValue); + set_RFCProperty(name, reloadCacheKey, clearValue); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,ClearDBEndKey.c_str()); RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "[%s][%d] Bootstrap Clearing DBEnd Key Value: %s\n", __FUNCTION__,__LINE__,BootstrapClearDBEndKey.c_str()); From 83950ae3835d02284d0995360d14db569436ac45 Mon Sep 17 00:00:00 2001 From: Vismalskumar0 Date: Wed, 14 Jan 2026 13:58:52 +0530 Subject: [PATCH 7/8] Remove unnecessary whitespace in xconf_handler.h Remove extra space in XconfHandler constructor to address code review feedback. --- rfcMgr/xconf_handler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcMgr/xconf_handler.h b/rfcMgr/xconf_handler.h index 4fea5136..0837951d 100644 --- a/rfcMgr/xconf_handler.h +++ b/rfcMgr/xconf_handler.h @@ -36,7 +36,7 @@ extern "C" { namespace xconf { class XconfHandler { public : - XconfHandler() { } + XconfHandler() { } int initializeXconfHandler(void); // We do not allow this class to be copied !! From cb05e91bd2c7598726b0fcbf8fdc2cc932ddc87e Mon Sep 17 00:00:00 2001 From: Vismal S Kumar Date: Thu, 22 Jan 2026 18:43:37 +0530 Subject: [PATCH 8/8] Update rfcMgr/rfc_xconf_handler.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- rfcMgr/rfc_xconf_handler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcMgr/rfc_xconf_handler.cpp b/rfcMgr/rfc_xconf_handler.cpp index bbdeee85..1210bbc7 100644 --- a/rfcMgr/rfc_xconf_handler.cpp +++ b/rfcMgr/rfc_xconf_handler.cpp @@ -1387,7 +1387,7 @@ void RuntimeFeatureControlProcessor::updateHashInDB(std::string configSetHash) #if !defined(RDKB_SUPPORT) std::string ConfigSetHashName = "ConfigSetHash"; std::string ConfigSetHash_key = "Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Control.ConfigSetHash"; - set_RFCProperty(std::move(ConfigSetHashName), std::move(ConfigSetHash_key), configSetHash); + set_RFCProperty(ConfigSetHashName, ConfigSetHash_key, std::move(configSetHash)); #else const std::string RFC_RAM_PATH = "/tmp/RFC"; std::string filePath = RFC_RAM_PATH + "/.hashValue";