mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-28 07:51:19 +02:00
fix AddressSanitizer: strncpy-param-overlap: memory ranges
This commit is contained in:
@@ -507,24 +507,30 @@ void CRemoteControl::processAPIDnames()
|
|||||||
{
|
{
|
||||||
has_unresolved_ctags= true;
|
has_unresolved_ctags= true;
|
||||||
}
|
}
|
||||||
if ( strlen( current_PIDs.APIDs[count].desc ) == 3 )
|
std::string tmp_desc = current_PIDs.APIDs[count].desc;
|
||||||
|
if ( tmp_desc.size() == 3 )
|
||||||
{
|
{
|
||||||
// unaufgeloeste Sprache...
|
// unaufgeloeste Sprache...
|
||||||
strcpy( current_PIDs.APIDs[count].desc, getISO639Description( current_PIDs.APIDs[count].desc ) );
|
tmp_desc = getISO639Description( current_PIDs.APIDs[count].desc );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( current_PIDs.APIDs[count].is_ac3 )
|
if ( current_PIDs.APIDs[count].is_ac3 )
|
||||||
{
|
{
|
||||||
if(!strstr(current_PIDs.APIDs[count].desc, " (AC3)"))
|
if(!strstr(current_PIDs.APIDs[count].desc, " (AC3)"))
|
||||||
strncat(current_PIDs.APIDs[count].desc, " (AC3)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[count].desc)-1);
|
tmp_desc += " (AC3)";
|
||||||
has_ac3 = true;
|
has_ac3 = true;
|
||||||
if(g_settings.audio_DolbyDigital && (ac3_found < 0))
|
if(g_settings.audio_DolbyDigital && (ac3_found < 0))
|
||||||
ac3_found = count;
|
ac3_found = count;
|
||||||
}
|
}
|
||||||
else if (current_PIDs.APIDs[count].is_aac && !strstr(current_PIDs.APIDs[count].desc, " (AAC)"))
|
else if (current_PIDs.APIDs[count].is_aac && !strstr(current_PIDs.APIDs[count].desc, " (AAC)"))
|
||||||
strncat(current_PIDs.APIDs[count].desc, " (AAC)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[count].desc)-1);
|
tmp_desc += " (AAC)";
|
||||||
else if (current_PIDs.APIDs[count].is_eac3 && !strstr(current_PIDs.APIDs[count].desc, " (EAC3)"))
|
else if (current_PIDs.APIDs[count].is_eac3 && !strstr(current_PIDs.APIDs[count].desc, " (EAC3)"))
|
||||||
strncat(current_PIDs.APIDs[count].desc, " (EAC3)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[count].desc)-1);
|
tmp_desc += " (EAC3)";
|
||||||
|
|
||||||
|
if(!tmp_desc.empty()){
|
||||||
|
strncpy(current_PIDs.APIDs[count].desc, tmp_desc.c_str(), DESC_MAX_LEN -1);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( has_unresolved_ctags )
|
if ( has_unresolved_ctags )
|
||||||
@@ -545,13 +551,17 @@ void CRemoteControl::processAPIDnames()
|
|||||||
// workaround for buggy ZDF ctags / or buggy sectionsd/drivers , who knows...
|
// workaround for buggy ZDF ctags / or buggy sectionsd/drivers , who knows...
|
||||||
if(!tags[i].component.empty())
|
if(!tags[i].component.empty())
|
||||||
{
|
{
|
||||||
strncpy(current_PIDs.APIDs[j].desc, tags[i].component.c_str(), DESC_MAX_LEN-1);
|
std::string tmp_desc2 = tags[i].component.c_str();
|
||||||
if (current_PIDs.APIDs[j].is_ac3 && !strstr(current_PIDs.APIDs[j].desc, " (AC3)"))
|
if (current_PIDs.APIDs[j].is_ac3 && tmp_desc2.find(" (AC3)"))
|
||||||
strncat(current_PIDs.APIDs[j].desc, " (AC3)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[j].desc)-1);
|
tmp_desc2 += " (AC3)";
|
||||||
else if (current_PIDs.APIDs[j].is_aac && !strstr(current_PIDs.APIDs[j].desc, " (AAC)"))
|
else if (current_PIDs.APIDs[j].is_aac && tmp_desc2.find(" (AAC)"))
|
||||||
strncat(current_PIDs.APIDs[j].desc, " (AAC)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[j].desc)-1);
|
tmp_desc2 += " (AAC)";
|
||||||
else if (current_PIDs.APIDs[j].is_eac3 && !strstr(current_PIDs.APIDs[j].desc, " (EAC3)"))
|
else if (current_PIDs.APIDs[j].is_eac3 && tmp_desc2.find(" (EAC3)"))
|
||||||
strncat(current_PIDs.APIDs[j].desc, " (EAC3)", DESC_MAX_LEN - strlen(current_PIDs.APIDs[j].desc)-1);
|
tmp_desc2 += " (EAC3)";
|
||||||
|
|
||||||
|
if(!tmp_desc2.empty()){
|
||||||
|
strncpy(current_PIDs.APIDs[j].desc, tmp_desc2.c_str(), DESC_MAX_LEN -1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
current_PIDs.APIDs[j].component_tag = -1;
|
current_PIDs.APIDs[j].component_tag = -1;
|
||||||
break;
|
break;
|
||||||
|
@@ -395,15 +395,20 @@ void CRecordInstance::ProcessAPIDnames()
|
|||||||
if (allpids.APIDs[count].component_tag != 0xFF)
|
if (allpids.APIDs[count].component_tag != 0xFF)
|
||||||
has_unresolved_ctags= true;
|
has_unresolved_ctags= true;
|
||||||
|
|
||||||
if ( strlen( allpids.APIDs[count].desc ) == 3 )
|
std::string tmp_desc = allpids.APIDs[count].desc;
|
||||||
strncpy( allpids.APIDs[count].desc, getISO639Description( allpids.APIDs[count].desc ),DESC_MAX_LEN -1 );
|
if ( strlen( allpids.APIDs[count].desc ) == 3 ){
|
||||||
|
tmp_desc = getISO639Description( allpids.APIDs[count].desc );
|
||||||
|
}
|
||||||
|
|
||||||
if ( allpids.APIDs[count].is_ac3 && !strstr(allpids.APIDs[count].desc, " (AC3)"))
|
if ( allpids.APIDs[count].is_ac3 && tmp_desc.find(" (AC3)"))
|
||||||
strncat(allpids.APIDs[count].desc, " (AC3)", DESC_MAX_LEN - strlen(allpids.APIDs[count].desc) -1);
|
tmp_desc += " (AC3)";
|
||||||
else if (allpids.APIDs[count].is_aac && !strstr(allpids.APIDs[count].desc, " (AAC)"))
|
else if (allpids.APIDs[count].is_aac && tmp_desc.find(" (AAC)"))
|
||||||
strncat(allpids.APIDs[count].desc, " (AAC)", DESC_MAX_LEN - strlen(allpids.APIDs[count].desc) -1);
|
tmp_desc += " (AAC)";
|
||||||
else if (allpids.APIDs[count].is_eac3 && !strstr(allpids.APIDs[count].desc, " (EAC3)"))
|
else if (allpids.APIDs[count].is_eac3 && tmp_desc.find(" (EAC3)"))
|
||||||
strncat(allpids.APIDs[count].desc, " (EAC3)", DESC_MAX_LEN - strlen(allpids.APIDs[count].desc) -1);
|
tmp_desc += " (EAC3)";
|
||||||
|
if(!tmp_desc.empty()){
|
||||||
|
strncpy( allpids.APIDs[count].desc, tmp_desc.c_str(),DESC_MAX_LEN -1) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(has_unresolved_ctags && (epgid != 0)) {
|
if(has_unresolved_ctags && (epgid != 0)) {
|
||||||
@@ -413,13 +418,18 @@ void CRecordInstance::ProcessAPIDnames()
|
|||||||
for(unsigned int j=0; j< allpids.APIDs.size(); j++) {
|
for(unsigned int j=0; j< allpids.APIDs.size(); j++) {
|
||||||
if(allpids.APIDs[j].component_tag == tags[i].componentTag) {
|
if(allpids.APIDs[j].component_tag == tags[i].componentTag) {
|
||||||
if(!tags[i].component.empty()) {
|
if(!tags[i].component.empty()) {
|
||||||
strncpy(allpids.APIDs[j].desc, tags[i].component.c_str(), DESC_MAX_LEN -1);
|
std::string tmp_desc2;
|
||||||
if (allpids.APIDs[j].is_ac3 && !strstr(allpids.APIDs[j].desc, " (AC3)"))
|
tmp_desc2 = tags[i].component;
|
||||||
strncat(allpids.APIDs[j].desc, " (AC3)", DESC_MAX_LEN - strlen(allpids.APIDs[j].desc)-1);
|
if (allpids.APIDs[j].is_ac3 && tmp_desc2.find(" (AC3)"))
|
||||||
else if (allpids.APIDs[j].is_aac && !strstr(allpids.APIDs[j].desc, " (AAC)"))
|
tmp_desc2 += " (AC3)";
|
||||||
strncat(allpids.APIDs[j].desc, " (AAC)", DESC_MAX_LEN - strlen(allpids.APIDs[j].desc)-1);
|
else if (allpids.APIDs[j].is_aac && tmp_desc2.find(" (AAC)"))
|
||||||
else if (allpids.APIDs[j].is_eac3 && !strstr(allpids.APIDs[j].desc, " (EAC3)"))
|
tmp_desc2 += " (AAC)";
|
||||||
strncat(allpids.APIDs[j].desc, " (EAC3)", DESC_MAX_LEN - strlen(allpids.APIDs[j].desc)-1);
|
else if (allpids.APIDs[j].is_eac3 && tmp_desc2.find(" (EAC3)"))
|
||||||
|
tmp_desc2 += " (EAC3)";
|
||||||
|
|
||||||
|
if(!tmp_desc2.empty()){
|
||||||
|
strncpy(allpids.APIDs[j].desc, tmp_desc2.c_str(), DESC_MAX_LEN -1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
allpids.APIDs[j].component_tag = -1;
|
allpids.APIDs[j].component_tag = -1;
|
||||||
break;
|
break;
|
||||||
|
@@ -2216,11 +2216,12 @@ void CControlAPI::SendAllCurrentVAPid(CyhookHandler *hh)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
std::string tmp_desc = pids.APIDs[j].desc;
|
||||||
if(!(init_iso))
|
if(!(init_iso))
|
||||||
{
|
{
|
||||||
strncpy( pids.APIDs[j].desc, _getISO639Description( pids.APIDs[j].desc ),DESC_MAX_LEN );
|
tmp_desc = _getISO639Description( pids.APIDs[j].desc );
|
||||||
}
|
}
|
||||||
hh->printf("%05u %s %s\n",pids.APIDs[j].pid,pids.APIDs[j].desc,pids.APIDs[j].is_ac3 ? " (AC3)": pids.APIDs[j].desc,pids.APIDs[j].is_aac ? "(AAC)" : pids.APIDs[j].desc,pids.APIDs[j].is_eac3 ? "(EAC3)" : " ");
|
hh->printf("%05u %s %s\n",pids.APIDs[j].pid,tmp_desc.c_str(),pids.APIDs[j].is_ac3 ? " (AC3)": tmp_desc.c_str(),pids.APIDs[j].is_aac ? "(AAC)" : tmp_desc.c_str(),pids.APIDs[j].is_eac3 ? "(EAC3)" : " ");
|
||||||
}
|
}
|
||||||
eit_not_ok=false;
|
eit_not_ok=false;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user