mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-10 08:09:26 +01:00
Add some safety to file names. This fixes a buffer overrun when extracting everything from an ISO.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5537 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
bdeefd361a
commit
55fd46de26
@ -39,7 +39,7 @@ struct SFileInfo
|
||||
|
||||
SFileInfo(const SFileInfo &rhs) : m_NameOffset(rhs.m_NameOffset),
|
||||
m_Offset(rhs.m_Offset), m_FileSize(rhs.m_FileSize) {
|
||||
memcpy(m_FullPath, rhs.m_FullPath, strlen(rhs.m_FullPath));
|
||||
memcpy(m_FullPath, rhs.m_FullPath, strlen(rhs.m_FullPath) + 1);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -676,7 +676,7 @@ void CISOProperties::ExportDir(const char* _rFullPath, const char* _rExportFolde
|
||||
|
||||
if (fst[i]->IsDirectory())
|
||||
{
|
||||
sprintf(exportName, "%s/%s/", _rExportFolder, fst[i]->m_FullPath);
|
||||
snprintf(exportName, sizeof(exportName), "%s/%s/", _rExportFolder, fst[i]->m_FullPath);
|
||||
DEBUG_LOG(DISCIO, "%s", exportName);
|
||||
|
||||
if (!File::Exists(exportName) && !File::CreateFullPath(exportName))
|
||||
@ -693,7 +693,7 @@ void CISOProperties::ExportDir(const char* _rFullPath, const char* _rExportFolde
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(exportName, "%s/%s", _rExportFolder, fst[i]->m_FullPath);
|
||||
snprintf(exportName, sizeof(exportName), "%s/%s", _rExportFolder, fst[i]->m_FullPath);
|
||||
DEBUG_LOG(DISCIO, "%s", exportName);
|
||||
|
||||
if (!File::Exists(exportName) && !FS->ExportFile(fst[i]->m_FullPath, exportName))
|
||||
|
Loading…
x
Reference in New Issue
Block a user