From cbdab7d8c004fa805bfb8b962fe7fba651e2bc6c Mon Sep 17 00:00:00 2001 From: "[CST] Focus" Date: Wed, 14 Jan 2015 12:46:09 +0300 Subject: [PATCH] driver/record.cpp: fix crash due to epgdata.info1 len more than buffer size --- src/driver/record.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/driver/record.cpp b/src/driver/record.cpp index cf751e374..e8a4541ef 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -723,7 +723,7 @@ void CRecordInstance::MakeExtFileName(CZapitChannel * channel, std::string &File std::string channel_name = channel->getName(); if (!(channel_name.empty())) { - strcpy(buf, UTF8_TO_FILESYSTEM_ENCODING(channel_name.c_str())); + snprintf(buf, sizeof(buf), UTF8_TO_FILESYSTEM_ENCODING(channel_name.c_str())); ZapitTools::replace_char(buf); StringReplace(FilenameTemplate,"%C",buf); } @@ -733,7 +733,7 @@ void CRecordInstance::MakeExtFileName(CZapitChannel * channel, std::string &File CShortEPGData epgdata; if(CEitManager::getInstance()->getEPGidShort(epgid, &epgdata)) { if (!(epgdata.title.empty())) { - strcpy(buf, epgdata.title.c_str()); + snprintf(buf, sizeof(buf), epgdata.title.c_str()); ZapitTools::replace_char(buf); StringReplace(FilenameTemplate,"%T",buf); } @@ -741,7 +741,7 @@ void CRecordInstance::MakeExtFileName(CZapitChannel * channel, std::string &File StringReplace(FilenameTemplate,"%T","no_title"); if (!(epgdata.info1.empty())) { - strcpy(buf, epgdata.info1.c_str()); + snprintf(buf, sizeof(buf), epgdata.info1.c_str()); ZapitTools::replace_char(buf); StringReplace(FilenameTemplate,"%I",buf); }