summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-04-05 18:09:41 +0200
committerBjoern Michaelsen <bjoern.michaelsen@canonical.com>2012-04-06 21:32:47 +0200
commitcac9cf690bf337a97ede781c38c5e7ddb3f37ca5 (patch)
tree5dc8e6fefa9a01f115f607db4d7558dac66b3410 /sfx2
parent2ff3c94c471ee586c733121e528e9623c4344224 (diff)
fdo#43895 lp#905355: fix the fix so it doesn't crash
rtl::OUString rtl::OUString::copy(sal_Int32) const: Assertion `beginIndex >= 0 && beginIndex <= getLength()' failed. (regression from dd2fe95cce75f1157bd1c75d286a0047b2e4175e) Signed-off-by: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/dialog/filedlghelper.cxx11
1 files changed, 10 insertions, 1 deletions
diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
index 79c1e4ee758c..6acb00634687 100644
--- a/sfx2/source/dialog/filedlghelper.cxx
+++ b/sfx2/source/dialog/filedlghelper.cxx
@@ -1654,8 +1654,17 @@ void FileDialogHelper_Impl::getRealFilter( String& _rFilter ) const
void FileDialogHelper_Impl::verifyPath()
{
#ifdef UNX
+ static char const s_FileScheme[] = "file://";
+ if (0 != rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength(
+ maPath.getStr(), maPath.getLength(),
+ s_FileScheme, RTL_CONSTASCII_LENGTH(s_FileScheme)))
+ {
+ return;
+ }
+ const OString sFullPath = OUStringToOString(
+ maPath.copy(RTL_CONSTASCII_LENGTH(s_FileScheme)) + maFileName,
+ osl_getThreadTextEncoding() );
struct stat aFileStat;
- const OString sFullPath = OUStringToOString( maPath.copy(RTL_CONSTASCII_LENGTH("file://")) + maFileName, osl_getThreadTextEncoding() );
stat( sFullPath.getStr(), &aFileStat );
// lp#905355, fdo#43895
// Check that the file has read only permission and is in /tmp -- this is