diff options
author | Matteo Casalin <matteo.casalin@yahoo.com> | 2019-01-26 00:44:26 +0100 |
---|---|---|
committer | Matteo Casalin <matteo.casalin@yahoo.com> | 2019-01-27 23:10:13 +0100 |
commit | 3c2cd4829229a312e79cfba3971b954bd605681c (patch) | |
tree | 40c9f024d2f06dc57cc3b07ecfa1f242f9ca67bc /unotools | |
parent | 6da3cd5521ffba2f6502929260d33c91ec56d556 (diff) |
Bail out early
Change-Id: I7851f4952ca2c863d92fd14fa19005ed35634033
Reviewed-on: https://gerrit.libreoffice.org/66941
Tested-by: Jenkins
Reviewed-by: Matteo Casalin <matteo.casalin@yahoo.com>
Diffstat (limited to 'unotools')
-rw-r--r-- | unotools/source/misc/datetime.cxx | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/unotools/source/misc/datetime.cxx b/unotools/source/misc/datetime.cxx index 7a843db7a34a..7ebfd543c681 100644 --- a/unotools/source/misc/datetime.cxx +++ b/unotools/source/misc/datetime.cxx @@ -349,35 +349,29 @@ bool ISO8601parseDateTime(const OUString &rString, css::util::DateTime& rDateTim bool ISO8601parseDate(const OUString &aDateStr, css::util::Date& rDate) { const sal_Int32 nDateTokens {comphelper::string::getTokenCount(aDateStr, '-')}; - bool bSuccess = true; + + if (nDateTokens<1 || nDateTokens>3) + return false; sal_Int32 nYear = 1899; sal_Int32 nMonth = 12; sal_Int32 nDay = 30; - if ( nDateTokens > 3 || aDateStr.isEmpty() ) - bSuccess = false; - else - { - sal_Int32 n = 0; - if ( !convertNumber32( nYear, aDateStr.getToken( 0, '-', n ), 0, 9999 ) ) - bSuccess = false; - if ( nDateTokens >= 2 ) - if ( !convertNumber32( nMonth, aDateStr.getToken( 0, '-', n ), 0, 12 ) ) - bSuccess = false; - if ( nDateTokens >= 3 ) - if ( !convertNumber32( nDay, aDateStr.getToken( 0, '-', n ), 0, 31 ) ) - bSuccess = false; - } + sal_Int32 nIdx {0}; + if ( !convertNumber32( nYear, aDateStr.getToken( 0, '-', nIdx ), 0, 9999 ) ) + return false; + if ( nDateTokens >= 2 ) + if ( !convertNumber32( nMonth, aDateStr.getToken( 0, '-', nIdx ), 0, 12 ) ) + return false; + if ( nDateTokens >= 3 ) + if ( !convertNumber32( nDay, aDateStr.getToken( 0, '-', nIdx ), 0, 31 ) ) + return false; - if (bSuccess) - { - rDate.Year = static_cast<sal_uInt16>(nYear); - rDate.Month = static_cast<sal_uInt16>(nMonth); - rDate.Day = static_cast<sal_uInt16>(nDay); - } + rDate.Year = static_cast<sal_uInt16>(nYear); + rDate.Month = static_cast<sal_uInt16>(nMonth); + rDate.Day = static_cast<sal_uInt16>(nDay); - return bSuccess; + return true; } /** convert ISO8601 Time String to util::Time */ |