summaryrefslogtreecommitdiff
path: root/fpicker
diff options
context:
space:
mode:
authorAriel Constenla-Haile <arielch@apache.org>2013-10-25 12:49:16 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-10-27 12:03:23 +0000
commit4089083f32a22e7f308b82b9e8dc4a4abaee8b24 (patch)
tree10695c16d072237acbb75e8ff82a88188fc2439c /fpicker
parent2f3b37b6d1c1941a2a7a9937dab140dec361f488 (diff)
Resolves: #i123544# Prevent accessing empty filters' vector
(cherry picked from commit 3b16c98449d120b07ca4f2f312e31127ac655482) Change-Id: Ieb71209d9c299ef7f050e00ccf010aca87ee2ab7
Diffstat (limited to 'fpicker')
-rw-r--r--fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx13
1 files changed, 8 insertions, 5 deletions
diff --git a/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx b/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
index b6def5b23b12..1e5f9cd61bcf 100644
--- a/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
+++ b/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
@@ -899,15 +899,18 @@ void VistaFilePickerImpl::impl_sta_ShowDialogModal(const RequestRef& rRequest)
{
UINT nFileType;
hResult = iDialog->GetFileTypeIndex(&nFileType);
- if ( SUCCEEDED(hResult) )
+ if ( SUCCEEDED(hResult) && nFileType > 0 )
{
::sal_Int32 nRealIndex = (nFileType-1); // COM dialog base on 1 ... filter container on 0 .-)
::std::vector< COMDLG_FILTERSPEC > lFilters = lcl_buildFilterList(m_lFilters);
- LPCWSTR lpFilterExt = lFilters[nRealIndex].pszSpec;
+ if ( nRealIndex < lFilters.size() )
+ {
+ LPCWSTR lpFilterExt = lFilters[nRealIndex].pszSpec;
- lpFilterExt = wcsrchr( lpFilterExt, '.' );
- if ( lpFilterExt )
- aFileURL += reinterpret_cast<const sal_Unicode*>(lpFilterExt);
+ lpFilterExt = wcsrchr( lpFilterExt, '.' );
+ if ( lpFilterExt )
+ aFileURL += reinterpret_cast<const sal_Unicode*>(lpFilterExt);
+ }
}
}