From c78306fb47011a3c050368b9696cb2d5ecf3d57d Mon Sep 17 00:00:00 2001 From: Rtch90 Date: Mon, 22 Apr 2019 01:53:09 +0100 Subject: [PATCH] tdf#61076 string validation on creation of new dictionary. Prevent having '/' or '\' within the dictionary name to prevent data loss. Change-Id: I392832c748effcdbbe58983a788ba6b38764628c Reviewed-on: https://gerrit.libreoffice.org/71059 Reviewed-by: Samuel Mehrbrodt Tested-by: Jenkins --- cui/inc/strings.hrc | 1 + cui/source/options/optdict.cxx | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/cui/inc/strings.hrc b/cui/inc/strings.hrc index d7e581fccb26..3833d157adff 100644 --- a/cui/inc/strings.hrc +++ b/cui/inc/strings.hrc @@ -258,6 +258,7 @@ #define RID_SVXSTR_CHG_SMARTART NC_("RID_SVXSTR_CHG_SMARTART", "SmartArt to %PRODUCTNAME shapes or reverse") #define RID_SVXSTR_OPT_DOUBLE_DICTS NC_("RID_SVXSTR_OPT_DOUBLE_DICTS", "The specified name already exists.\nPlease enter a new name.") +#define RID_SVXSTR_OPT_INVALID_DICT_NAME NC_("RID_SVXSTR_OPT_INVALID_DICT_NAME", "The specified name is invalid.\nPlease enter a new name.") /* To translators: Please, try to find a similar *short* translation to avoid to get narrow "New" field in the "Edit custom dictionary" window, diff --git a/cui/source/options/optdict.cxx b/cui/source/options/optdict.cxx index adbb6489f551..40240d6fa550 100644 --- a/cui/source/options/optdict.cxx +++ b/cui/source/options/optdict.cxx @@ -132,6 +132,17 @@ IMPL_LINK_NOARG(SvxNewDictionaryDialog, OKHdl_Impl, weld::Button&, void) if ( sDict.equalsIgnoreAsciiCase( pDic[i]->getName()) ) bFound = true; + if ( sDict.indexOf("/") != -1 || sDict.indexOf("\\") != -1 ) + { + // Detected an invalid character. + std::unique_ptr xInfoBox(Application::CreateMessageDialog(m_xDialog.get(), + VclMessageType::Info, VclButtonsType::Ok, + CuiResId(RID_SVXSTR_OPT_INVALID_DICT_NAME))); + xInfoBox->run(); + m_xNameEdit->grab_focus(); + return; + } + if ( bFound ) { // duplicate names?