Hi, Please find the latest report on new defect(s) introduced to LibreOffice found with Coverity Scan.
23 new defect(s) introduced to LibreOffice found with Coverity Scan. 5 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan. New defect(s) Reported-by: Coverity Scan Showing 20 of 23 defect(s) ** CID 1645104: Concurrent data access violations (MISSING_LOCK) /drawinglayer/source/primitive2d/BufferedDecompositionGroupPrimitive2D.cxx: 49 in drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D::setBuffered2DDecomposition(drawinglayer::primitive2d::Primitive2DContainer &&)() ________________________________________________________________________________________________________ *** CID 1645104: Concurrent data access violations (MISSING_LOCK) /drawinglayer/source/primitive2d/BufferedDecompositionGroupPrimitive2D.cxx: 49 in drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D::setBuffered2DDecomposition(drawinglayer::primitive2d::Primitive2DContainer &&)() 43 // no flush used, just set 44 maBuffered2DDecomposition = std::move(rNew); 45 } 46 else 47 { 48 // decomposition changed, touch >>> CID 1645104: Concurrent data access violations (MISSING_LOCK) >>> Accessing "this->maLastAccess" without holding lock >>> "drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D.maCallbackLock". >>> Elsewhere, >>> "drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D.maLastAccess" >>> is written to with "BufferedDecompositionGroupPrimitive2D.maCallbackLock" >>> held 1 out of 2 times (1 of these accesses strongly imply that it is >>> necessary). 49 maLastAccess = std::chrono::steady_clock::now(); 50 BufferedDecompositionFlusher::update(this); 51 52 // tdf#158913 need to secure change when flush/multithreading is in use 53 std::lock_guard Guard(maCallbackLock); 54 maBuffered2DDecomposition = std::move(rNew); ** CID 1645103: Uninitialized members (UNINIT_CTOR) /framework/source/services/frame.cxx: 591 in <unnamed>::XFrameImpl::loadComponentFromURL(const rtl::OUString &, const rtl::OUString &, int, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &)::[lambda() (instance 1)]::lambda([lambda() (instance 1)]&&)() ________________________________________________________________________________________________________ *** CID 1645103: Uninitialized members (UNINIT_CTOR) /framework/source/services/frame.cxx: 591 in <unnamed>::XFrameImpl::loadComponentFromURL(const rtl::OUString &, const rtl::OUString &, int, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &)::[lambda() (instance 1)]::lambda([lambda() (instance 1)]&&)() 585 { 586 // Make sure that we own the solar mutex, otherwise later 587 // vcl::SolarThreadExecutor::execute() will release the solar mutex, even if it's owned by 588 // another thread, leading to an std::abort() at the end. 589 SolarMutexGuard g; 590 >>> CID 1645103: Uninitialized members (UNINIT_CTOR) >>> Non-static class member "this" is not initialized in this constructor >>> nor in any functions that it calls. 591 return vcl::solarthread::syncExecute([this, xThis, sURL, sTargetFrameName, nSearchFlags, lArguments] { 592 return LoadEnv::loadComponentFromURL(xThis, m_xContext, sURL, sTargetFrameName, 593 nSearchFlags, lArguments); 594 }); 595 } 596 else ** CID 1645102: Uninitialized members (UNINIT_CTOR) /framework/source/services/desktop.cxx: 586 in framework::Desktop::loadComponentFromURL(const rtl::OUString &, const rtl::OUString &, int, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &)::[lambda() (instance 1)]::lambda(const [lambda() (instance 1)]&)() ________________________________________________________________________________________________________ *** CID 1645102: Uninitialized members (UNINIT_CTOR) /framework/source/services/desktop.cxx: 586 in framework::Desktop::loadComponentFromURL(const rtl::OUString &, const rtl::OUString &, int, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &)::[lambda() (instance 1)]::lambda(const [lambda() (instance 1)]&)() 580 { 581 // Make sure that we own the solar mutex, otherwise later 582 // vcl::SolarThreadExecutor::execute() will release the solar mutex, even if it's owned by 583 // another thread, leading to an std::abort() at the end. 584 SolarMutexGuard g; 585 >>> CID 1645102: Uninitialized members (UNINIT_CTOR) >>> Non-static class member "this" is not initialized in this constructor >>> nor in any functions that it calls. 586 return vcl::solarthread::syncExecute([this, xThis, sURL, sTargetFrameName, nSearchFlags, lArguments] { 587 return LoadEnv::loadComponentFromURL(xThis, m_xContext, sURL, sTargetFrameName, 588 nSearchFlags, lArguments); 589 }); 590 } 591 else ** CID 1645101: Concurrent data access violations (MISSING_LOCK) /comphelper/source/property/propshlp.cxx: 578 in comphelper::OPropertySetHelper::fire(std::unique_lock<std::mutex> &, const int *, const com::sun::star::uno::Any *, const com::sun::star::uno::Any *, int, bool)() ________________________________________________________________________________________________________ *** CID 1645101: Concurrent data access violations (MISSING_LOCK) /comphelper/source/property/propshlp.cxx: 578 in comphelper::OPropertySetHelper::fire(std::unique_lock<std::mutex> &, const int *, const com::sun::star::uno::Any *, const com::sun::star::uno::Any *, int, bool)() 572 // reduce array to changed properties 573 aEvts.realloc(nChangesLen); 574 575 if (bVetoable) 576 return; 577 >>> CID 1645101: Concurrent data access violations (MISSING_LOCK) >>> Accessing "this->maPropertiesChangeListeners" without holding lock >>> "comphelper::UnoImplBase.m_aMutex". Elsewhere, >>> "comphelper::OPropertySetHelper.maPropertiesChangeListeners" is written to >>> with "UnoImplBase.m_aMutex" held 2 out of 2 times. 578 if (!maPropertiesChangeListeners.getLength(rGuard)) 579 return; 580 581 // Here is a Bug, unbound properties are also fired 582 OInterfaceIteratorHelper4 aIt(rGuard, maPropertiesChangeListeners); 583 rGuard.unlock(); ** CID 1645100: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 220 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 4)]::operator ()()() ________________________________________________________________________________________________________ *** CID 1645100: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 220 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 4)]::operator ()()() 214 GenerateNumbers(rng, STR_DISTRIBUTION_NORMAL, aDecimalPlaces); 215 break; 216 } 217 case DIST_CAUCHY: 218 { 219 std::cauchy_distribution<> distribution(parameter1); >>> CID 1645100: Performance inefficiencies (PASS_BY_VALUE) >>> Capturing variable "seed" of type "std::mt19937" (size 5000 bytes) by >>> value, which exceeds the high threshold of 512 bytes. 220 auto rng = [&distribution, seed]() mutable 221 { 222 return distribution(seed); 223 }; 224 GenerateNumbers(rng, STR_DISTRIBUTION_CAUCHY, aDecimalPlaces); 225 break; ** CID 1645099: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 260 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 8)]::operator ()()() ________________________________________________________________________________________________________ *** CID 1645099: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 260 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 8)]::operator ()()() 254 GenerateNumbers(rng, STR_DISTRIBUTION_CHI_SQUARED, aDecimalPlaces); 255 break; 256 } 257 case DIST_GEOMETRIC: 258 { 259 std::geometric_distribution<> distribution(parameter1); >>> CID 1645099: Performance inefficiencies (PASS_BY_VALUE) >>> Capturing variable "seed" of type "std::mt19937" (size 5000 bytes) by >>> value, which exceeds the high threshold of 512 bytes. 260 auto rng = [&distribution, seed]() mutable 261 { 262 return distribution(seed); 263 }; 264 GenerateNumbers(rng, STR_DISTRIBUTION_GEOMETRIC, aDecimalPlaces); 265 break; ** CID 1645098: Concurrent data access violations (MISSING_LOCK) /comphelper/source/property/propshlp.cxx: 561 in comphelper::OPropertySetHelper::fire(std::unique_lock<std::mutex> &, const int *, const com::sun::star::uno::Any *, const com::sun::star::uno::Any *, int, bool)() ________________________________________________________________________________________________________ *** CID 1645098: Concurrent data access violations (MISSING_LOCK) /comphelper/source/property/propshlp.cxx: 561 in comphelper::OPropertySetHelper::fire(std::unique_lock<std::mutex> &, const int *, const com::sun::star::uno::Any *, const com::sun::star::uno::Any *, int, bool)() 555 { 556 if (bVetoable) // fire change Events? 557 fireVetoableChangeListeners( 558 rGuard, aVetoableLC.getContainer(rGuard, pEvts[i].PropertyHandle), pEvts[i]); 559 else 560 // get the listener container for the property name >>> CID 1645098: Concurrent data access violations (MISSING_LOCK) >>> Accessing "this->aBoundLC" without holding lock >>> "comphelper::UnoImplBase.m_aMutex". Elsewhere, >>> "comphelper::OPropertySetHelper.aBoundLC" is written to with >>> "UnoImplBase.m_aMutex" held 1 out of 1 times. 561 firePropertyChangeListeners( 562 rGuard, aBoundLC.getContainer(rGuard, pEvts[i].PropertyHandle), pEvts[i]); 563 564 // broadcast to all listeners with "" property name 565 if (bVetoable) 566 // fire change Events? ** CID 1645097: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 280 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 10)]::operator ()()() ________________________________________________________________________________________________________ *** CID 1645097: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 280 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 10)]::operator ()()() 274 GenerateNumbers(rng, STR_DISTRIBUTION_NEGATIVE_BINOMIAL, aDecimalPlaces); 275 break; 276 } 277 case DIST_POISSON: 278 { 279 std::poisson_distribution<> distribution(parameter1); >>> CID 1645097: Performance inefficiencies (PASS_BY_VALUE) >>> Capturing variable "seed" of type "std::mt19937" (size 5000 bytes) by >>> value, which exceeds the high threshold of 512 bytes. 280 auto rng = [&distribution, seed]() mutable 281 { 282 return distribution(seed); 283 }; 284 GenerateNumbers(rng, STR_DISTRIBUTION_POISSON, aDecimalPlaces); 285 break; ** CID 1645096: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 240 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 6)]::operator ()()() ________________________________________________________________________________________________________ *** CID 1645096: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 240 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 6)]::operator ()()() 234 GenerateNumbers(rng, STR_DISTRIBUTION_BERNOULLI, aDecimalPlaces); 235 break; 236 } 237 case DIST_BINOMIAL: 238 { 239 std::binomial_distribution<> distribution(parameterInteger2, parameter1); >>> CID 1645096: Performance inefficiencies (PASS_BY_VALUE) >>> Capturing variable "seed" of type "std::mt19937" (size 5000 bytes) by >>> value, which exceeds the high threshold of 512 bytes. 240 auto rng = [&distribution, seed]() mutable 241 { 242 return distribution(seed); 243 }; 244 GenerateNumbers(rng, STR_DISTRIBUTION_BINOMIAL, aDecimalPlaces); 245 break; ** CID 1645095: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 250 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 7)]::operator ()()() ________________________________________________________________________________________________________ *** CID 1645095: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 250 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 7)]::operator ()()() 244 GenerateNumbers(rng, STR_DISTRIBUTION_BINOMIAL, aDecimalPlaces); 245 break; 246 } 247 case DIST_CHI_SQUARED: 248 { 249 std::chi_squared_distribution<> distribution(parameter1); >>> CID 1645095: Performance inefficiencies (PASS_BY_VALUE) >>> Capturing variable "seed" of type "std::mt19937" (size 5000 bytes) by >>> value, which exceeds the high threshold of 512 bytes. 250 auto rng = [&distribution, seed]() mutable 251 { 252 return distribution(seed); 253 }; 254 GenerateNumbers(rng, STR_DISTRIBUTION_CHI_SQUARED, aDecimalPlaces); 255 break; ** CID 1645094: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 190 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 1)]::operator ()()() ________________________________________________________________________________________________________ *** CID 1645094: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 190 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 1)]::operator ()()() 184 185 switch(aSelectedId) 186 { 187 case DIST_UNIFORM: 188 { 189 std::uniform_real_distribution<> distribution(parameter1, parameter2); >>> CID 1645094: Performance inefficiencies (PASS_BY_VALUE) >>> Capturing variable "seed" of type "std::mt19937" (size 5000 bytes) by >>> value, which exceeds the high threshold of 512 bytes. 190 auto rng = [&distribution, seed]() mutable 191 { 192 return distribution(seed); 193 }; 194 GenerateNumbers(rng, STR_DISTRIBUTION_UNIFORM_REAL, aDecimalPlaces); 195 break; ** CID 1645093: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 230 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 5)]::operator ()()() ________________________________________________________________________________________________________ *** CID 1645093: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 230 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 5)]::operator ()()() 224 GenerateNumbers(rng, STR_DISTRIBUTION_CAUCHY, aDecimalPlaces); 225 break; 226 } 227 case DIST_BERNOULLI: 228 { 229 std::bernoulli_distribution distribution(parameter1); >>> CID 1645093: Performance inefficiencies (PASS_BY_VALUE) >>> Capturing variable "seed" of type "std::mt19937" (size 5000 bytes) by >>> value, which exceeds the high threshold of 512 bytes. 230 auto rng = [&distribution, seed]() mutable 231 { 232 return distribution(seed); 233 }; 234 GenerateNumbers(rng, STR_DISTRIBUTION_BERNOULLI, aDecimalPlaces); 235 break; ** CID 1645092: Uninitialized members (UNINIT_CTOR) /framework/source/services/desktop.cxx: 586 in framework::Desktop::loadComponentFromURL(const rtl::OUString &, const rtl::OUString &, int, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &)::[lambda() (instance 1)]::lambda([lambda() (instance 1)]&&)() ________________________________________________________________________________________________________ *** CID 1645092: Uninitialized members (UNINIT_CTOR) /framework/source/services/desktop.cxx: 586 in framework::Desktop::loadComponentFromURL(const rtl::OUString &, const rtl::OUString &, int, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &)::[lambda() (instance 1)]::lambda([lambda() (instance 1)]&&)() 580 { 581 // Make sure that we own the solar mutex, otherwise later 582 // vcl::SolarThreadExecutor::execute() will release the solar mutex, even if it's owned by 583 // another thread, leading to an std::abort() at the end. 584 SolarMutexGuard g; 585 >>> CID 1645092: Uninitialized members (UNINIT_CTOR) >>> Non-static class member "this" is not initialized in this constructor >>> nor in any functions that it calls. 586 return vcl::solarthread::syncExecute([this, xThis, sURL, sTargetFrameName, nSearchFlags, lArguments] { 587 return LoadEnv::loadComponentFromURL(xThis, m_xContext, sURL, sTargetFrameName, 588 nSearchFlags, lArguments); 589 }); 590 } 591 else ** CID 1645091: Uninitialized members (UNINIT_CTOR) /framework/source/services/frame.cxx: 591 in <unnamed>::XFrameImpl::loadComponentFromURL(const rtl::OUString &, const rtl::OUString &, int, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &)::[lambda() (instance 1)]::lambda(const [lambda() (instance 1)]&)() ________________________________________________________________________________________________________ *** CID 1645091: Uninitialized members (UNINIT_CTOR) /framework/source/services/frame.cxx: 591 in <unnamed>::XFrameImpl::loadComponentFromURL(const rtl::OUString &, const rtl::OUString &, int, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> &)::[lambda() (instance 1)]::lambda(const [lambda() (instance 1)]&)() 585 { 586 // Make sure that we own the solar mutex, otherwise later 587 // vcl::SolarThreadExecutor::execute() will release the solar mutex, even if it's owned by 588 // another thread, leading to an std::abort() at the end. 589 SolarMutexGuard g; 590 >>> CID 1645091: Uninitialized members (UNINIT_CTOR) >>> Non-static class member "this" is not initialized in this constructor >>> nor in any functions that it calls. 591 return vcl::solarthread::syncExecute([this, xThis, sURL, sTargetFrameName, nSearchFlags, lArguments] { 592 return LoadEnv::loadComponentFromURL(xThis, m_xContext, sURL, sTargetFrameName, 593 nSearchFlags, lArguments); 594 }); 595 } 596 else ** CID 1645090: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 270 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 9)]::operator ()()() ________________________________________________________________________________________________________ *** CID 1645090: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 270 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 9)]::operator ()()() 264 GenerateNumbers(rng, STR_DISTRIBUTION_GEOMETRIC, aDecimalPlaces); 265 break; 266 } 267 case DIST_NEGATIVE_BINOMIAL: 268 { 269 std::negative_binomial_distribution<> distribution(parameterInteger2, parameter1); >>> CID 1645090: Performance inefficiencies (PASS_BY_VALUE) >>> Capturing variable "seed" of type "std::mt19937" (size 5000 bytes) by >>> value, which exceeds the high threshold of 512 bytes. 270 auto rng = [&distribution, seed]() mutable 271 { 272 return distribution(seed); 273 }; 274 GenerateNumbers(rng, STR_DISTRIBUTION_NEGATIVE_BINOMIAL, aDecimalPlaces); 275 break; ** CID 1645089: Concurrent data access violations (MISSING_LOCK) /comphelper/source/property/propshlp.cxx: 569 in comphelper::OPropertySetHelper::fire(std::unique_lock<std::mutex> &, const int *, const com::sun::star::uno::Any *, const com::sun::star::uno::Any *, int, bool)() ________________________________________________________________________________________________________ *** CID 1645089: Concurrent data access violations (MISSING_LOCK) /comphelper/source/property/propshlp.cxx: 569 in comphelper::OPropertySetHelper::fire(std::unique_lock<std::mutex> &, const int *, const com::sun::star::uno::Any *, const com::sun::star::uno::Any *, int, bool)() 563 564 // broadcast to all listeners with "" property name 565 if (bVetoable) 566 // fire change Events? 567 fireVetoableChangeListeners(rGuard, &maVetoableChangeListeners, pEvts[i]); 568 else >>> CID 1645089: Concurrent data access violations (MISSING_LOCK) >>> Accessing "this->maPropertyChangeListeners" without holding lock >>> "comphelper::UnoImplBase.m_aMutex". Elsewhere, >>> "comphelper::OPropertySetHelper.maPropertyChangeListeners" is written to >>> with "UnoImplBase.m_aMutex" held 2 out of 2 times. 569 firePropertyChangeListeners(rGuard, &maPropertyChangeListeners, pEvts[i]); 570 } 571 572 // reduce array to changed properties 573 aEvts.realloc(nChangesLen); 574 ** CID 1645088: (MISSING_LOCK) /drawinglayer/source/primitive2d/BufferedDecompositionFlusher.cxx: 123 in drawinglayer::primitive2d::BufferedDecompositionFlusher::onShot()() /drawinglayer/source/primitive2d/BufferedDecompositionFlusher.cxx: 113 in drawinglayer::primitive2d::BufferedDecompositionFlusher::onShot()() ________________________________________________________________________________________________________ *** CID 1645088: (MISSING_LOCK) /drawinglayer/source/primitive2d/BufferedDecompositionFlusher.cxx: 123 in drawinglayer::primitive2d::BufferedDecompositionFlusher::onShot()() 117 } 118 else 119 ++it; 120 } 121 for (auto it = maRegistered2.begin(); it != maRegistered2.end();) 122 { >>> CID 1645088: (MISSING_LOCK) >>> Accessing "(*it)->maLastAccess" without holding lock >>> "drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D.maCallbackLock". >>> Elsewhere, >>> "drawinglayer::primitive2d::BufferedDecompositionGroupPrimitive2D.maLastAccess" >>> is written to with "BufferedDecompositionGroupPrimitive2D.maCallbackLock" >>> held 1 out of 2 times (1 of these accesses strongly imply that it is >>> necessary). 123 if (aNow - (*it)->maLastAccess > std::chrono::seconds(10)) 124 { 125 aRemoved2.push_back(*it); 126 it = maRegistered2.erase(it); 127 } 128 else /drawinglayer/source/primitive2d/BufferedDecompositionFlusher.cxx: 113 in drawinglayer::primitive2d::BufferedDecompositionFlusher::onShot()() 107 std::vector<rtl::Reference<BufferedDecompositionPrimitive2D>> aRemoved1; 108 std::vector<rtl::Reference<BufferedDecompositionGroupPrimitive2D>> aRemoved2; 109 { 110 std::unique_lock l(maMutex); 111 for (auto it = maRegistered1.begin(); it != maRegistered1.end();) 112 { >>> CID 1645088: (MISSING_LOCK) >>> Accessing "(*it)->maLastAccess" without holding lock >>> "drawinglayer::primitive2d::BufferedDecompositionPrimitive2D.maCallbackLock". >>> Elsewhere, >>> "drawinglayer::primitive2d::BufferedDecompositionPrimitive2D.maLastAccess" >>> is written to with "BufferedDecompositionPrimitive2D.maCallbackLock" held 1 >>> out of 2 times (1 of these accesses strongly imply that it is necessary). 113 if (aNow - (*it)->maLastAccess > std::chrono::seconds(10)) 114 { 115 aRemoved1.push_back(*it); 116 it = maRegistered1.erase(it); 117 } 118 else ** CID 1645087: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 200 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 2)]::operator ()()() ________________________________________________________________________________________________________ *** CID 1645087: Performance inefficiencies (PASS_BY_VALUE) /sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx: 200 in ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()::[lambda() (instance 2)]::operator ()()() 194 GenerateNumbers(rng, STR_DISTRIBUTION_UNIFORM_REAL, aDecimalPlaces); 195 break; 196 } 197 case DIST_UNIFORM_INTEGER: 198 { 199 std::uniform_int_distribution<sal_Int64> distribution(parameterInteger1, parameterInteger2); >>> CID 1645087: Performance inefficiencies (PASS_BY_VALUE) >>> Capturing variable "seed" of type "std::mt19937" (size 5000 bytes) by >>> value, which exceeds the high threshold of 512 bytes. 200 auto rng = [&distribution, seed]() mutable 201 { 202 return distribution(seed); 203 }; 204 GenerateNumbers(rng, STR_DISTRIBUTION_UNIFORM_INTEGER, aDecimalPlaces); 205 break; ** CID 1645086: Concurrent data access violations (MISSING_LOCK) /drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx: 49 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::setBuffered2DDecomposition(rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D>)() ________________________________________________________________________________________________________ *** CID 1645086: Concurrent data access violations (MISSING_LOCK) /drawinglayer/source/primitive2d/BufferedDecompositionPrimitive2D.cxx: 49 in drawinglayer::primitive2d::BufferedDecompositionPrimitive2D::setBuffered2DDecomposition(rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D>)() 43 // no flush used, just set 44 maBuffered2DDecomposition = std::move(rNew); 45 } 46 else 47 { 48 // decomposition changed, touch >>> CID 1645086: Concurrent data access violations (MISSING_LOCK) >>> Accessing "this->maLastAccess" without holding lock >>> "drawinglayer::primitive2d::BufferedDecompositionPrimitive2D.maCallbackLock". >>> Elsewhere, >>> "drawinglayer::primitive2d::BufferedDecompositionPrimitive2D.maLastAccess" >>> is written to with "BufferedDecompositionPrimitive2D.maCallbackLock" held 1 >>> out of 2 times (1 of these accesses strongly imply that it is necessary). 49 maLastAccess = std::chrono::steady_clock::now(); 50 BufferedDecompositionFlusher::update(this); 51 52 // tdf#158913 need to secure change when flush/multithreading is in use 53 std::lock_guard Guard(maCallbackLock); 54 maBuffered2DDecomposition = std::move(rNew); ** CID 1645085: Null pointer dereferences (NULL_RETURNS) ________________________________________________________________________________________________________ *** CID 1645085: Null pointer dereferences (NULL_RETURNS) /sc/source/ui/view/dbfunc.cxx: 461 in ScDBFunc::ClearAutoFilter()() 455 SCROW nRow = GetViewData().GetCurY(); 456 SCTAB nTab = GetViewData().GetTabNo(); 457 458 ScDBData* pDBData = rDoc.GetDBAtCursor(nCol, nRow, nTab, ScDBDataPortion::AREA); 459 460 ScQueryParam aParam; >>> CID 1645085: Null pointer dereferences (NULL_RETURNS) >>> Dereferencing a pointer that might be "nullptr" "pDBData" when calling >>> "GetQueryParam". 461 pDBData->GetQueryParam(aParam); 462 463 aParam.RemoveAllEntriesByField(nCol); 464 aParam.eSearchType = utl::SearchParam::SearchType::Normal; 465 aParam.bCaseSens = false; 466 aParam.bDuplicate = true; ________________________________________________________________________________________________________ To view the defects in Coverity Scan visit, https://scan.coverity.com/projects/libreoffice?tab=overview