From a43cd3456b040e3c70c7629372d4a998ce33f997 Mon Sep 17 00:00:00 2001 From: truebrain Date: Fri, 16 Jan 2009 14:56:33 +0000 Subject: [PATCH] (svn r15108) -Fix: TarAddLink didn't lowercase strings, breaking tar-loading when using uppercase files --- src/fileio.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/fileio.cpp b/src/fileio.cpp index fee63fd08b..fc60dfebe2 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -475,8 +475,14 @@ const char *FioTarFirstDir(const char *tarname) return (*it).second.dirname; } -static void TarAddLink(const std::string &src, const std::string &dest) +static void TarAddLink(const std::string &srcParam, const std::string &destParam) { + std::string src = srcParam; + std::string dest = destParam; + /* Tar internals assume lowercase */ + std::transform(src.begin(), src.end(), src.begin(), tolower); + std::transform(dest.begin(), dest.end(), dest.begin(), tolower); + TarFileList::iterator dest_file = _tar_filelist.find(dest); if (dest_file != _tar_filelist.end()) { /* Link to file. Process the link like the destination file. */