be conservative on allowed temp font names
Change-Id: Iefdc1a8c9b4c7e8c08c84f747f8287ac3c419839 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176286 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
This commit is contained in:
parent
12e5082537
commit
383067b416
1 changed files with 12 additions and 4 deletions
|
@ -19,6 +19,7 @@
|
|||
#include <vcl/svapp.hxx>
|
||||
#include <vcl/embeddedfontshelper.hxx>
|
||||
#include <com/sun/star/io/XInputStream.hpp>
|
||||
#include <comphelper/storagehelper.hxx>
|
||||
|
||||
#include <font/PhysicalFontFaceCollection.hxx>
|
||||
#include <font/PhysicalFontCollection.hxx>
|
||||
|
@ -223,10 +224,6 @@ void EmbeddedFontsHelper::activateFonts()
|
|||
|
||||
OUString EmbeddedFontsHelper::fileUrlForTemporaryFont( const OUString& fontName, std::u16string_view extra )
|
||||
{
|
||||
OUString path = u"${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE( "bootstrap") "::UserInstallation}"_ustr;
|
||||
rtl::Bootstrap::expandMacros( path );
|
||||
path += "/user/temp/embeddedfonts/fromdocs/";
|
||||
osl::Directory::createPath( path );
|
||||
OUString filename = fontName;
|
||||
static int uniqueCounter = 0;
|
||||
if( extra == u"?" )
|
||||
|
@ -234,6 +231,17 @@ OUString EmbeddedFontsHelper::fileUrlForTemporaryFont( const OUString& fontName,
|
|||
else
|
||||
filename += extra;
|
||||
filename += ".ttf"; // TODO is it always ttf?
|
||||
|
||||
if (!::comphelper::OStorageHelper::IsValidZipEntryFileName(filename, false))
|
||||
{
|
||||
SAL_WARN( "vcl.fonts", "Cannot use filename: " << filename << " for temporary font");
|
||||
filename = "font" + OUString::number(uniqueCounter++) + ".ttf";
|
||||
}
|
||||
|
||||
OUString path = u"${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER "/" SAL_CONFIGFILE( "bootstrap") "::UserInstallation}"_ustr;
|
||||
rtl::Bootstrap::expandMacros( path );
|
||||
path += "/user/temp/embeddedfonts/fromdocs/";
|
||||
osl::Directory::createPath( path );
|
||||
return path + filename;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue