Hi, Please find the latest report on new defect(s) introduced to LibreOffice found with Coverity Scan.
6 new defect(s) introduced to LibreOffice found with Coverity Scan. 63 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 6 of 6 defect(s) ** CID 1662043: (UNINIT) /vcl/source/bitmap/BitmapTools.cxx: 1143 in vcl::bitmap::CanvasCairoExtractBitmapData(const Bitmap &, unsigned char *&, bool &, long &, long &)() /vcl/source/bitmap/BitmapTools.cxx: 1185 in vcl::bitmap::CanvasCairoExtractBitmapData(const Bitmap &, unsigned char *&, bool &, long &, long &)() _____________________________________________________________________________________________ *** CID 1662043: (UNINIT) /vcl/source/bitmap/BitmapTools.cxx: 1143 in vcl::bitmap::CanvasCairoExtractBitmapData(const Bitmap &, unsigned char *&, bool &, long &, long &)() 1137 data[ nOff++ ] = premultiply_table[nAlpha][pReadScan[ 1 ]]; 1138 data[ nOff++ ] = premultiply_table[nAlpha][pReadScan[ 0 ]]; 1139 #endif 1140 pReadScan += 4; 1141 #else 1142 if( bIsAlpha ) >>> CID 1662043: (UNINIT) >>> Using uninitialized value "data[nOff + 3L]". 1143 nAlpha = data[ nOff + 3 ]; 1144 else 1145 nAlpha = data[ nOff + 3 ] = 255; 1146 #if ENABLE_WASM_STRIP_PREMULTIPLY 1147 data[ nOff++ ] = vcl::bitmap::premultiply(*pReadScan++, nAlpha); 1148 data[ nOff++ ] = vcl::bitmap::premultiply(*pReadScan++, nAlpha); /vcl/source/bitmap/BitmapTools.cxx: 1185 in vcl::bitmap::CanvasCairoExtractBitmapData(const Bitmap &, unsigned char *&, bool &, long &, long &)() 1179 data[ nOff++ ] = premultiply_table[nAlpha][*pReadScan++]; 1180 data[ nOff++ ] = premultiply_table[nAlpha][*pReadScan++]; 1181 #endif 1182 pReadScan++; 1183 #else 1184 if( bIsAlpha ) >>> CID 1662043: (UNINIT) >>> Using uninitialized value "data[nOff + 3L]". 1185 nAlpha = data[ nOff + 3 ]; 1186 else 1187 nAlpha = data[ nOff + 3 ] = 255; 1188 #if ENABLE_WASM_STRIP_PREMULTIPLY 1189 data[ nOff++ ] = vcl::bitmap::premultiply(pReadScan[ 2 ], nAlpha); 1190 data[ nOff++ ] = vcl::bitmap::premultiply(pReadScan[ 1 ], nAlpha); ** CID 1662042: Performance inefficiencies (COPY_INSTEAD_OF_MOVE) _____________________________________________________________________________________________ *** CID 1662042: Performance inefficiencies (COPY_INSTEAD_OF_MOVE) /vcl/source/gdi/pdfwriter_impl.cxx: 10058 in vcl::PDFWriterImpl::createBitmapEmit(const Bitmap &, const Graphic &, std::__cxx11::list<vcl::pdf::BitmapEmit, std::allocator<vcl::pdf::BitmapEmit>> &, vcl::pdf::ResourceDict &, std::__cxx11::list<vcl::pdf::StreamRedirect, std::allocator<vcl::pdf::StreamRedirect>> &)() 10052 std::list<BitmapEmit>::const_iterator it = std::find_if(rBitmaps.begin(), rBitmaps.end(), 10053 [&](const BitmapEmit& arg) { return aID == arg.m_aID; }); 10054 if (it == rBitmaps.end()) 10055 { 10056 rBitmaps.push_front(BitmapEmit()); 10057 rBitmaps.front().m_aID = aID; >>> CID 1662042: Performance inefficiencies (COPY_INSTEAD_OF_MOVE) >>> "aBitmap" is copied in call to copy assignment for class "Bitmap", when >>> it could be moved instead. 10058 rBitmaps.front().m_aBitmap = aBitmap; 10059 if (!rGraphic.getVectorGraphicData() || rGraphic.getVectorGraphicData()->getType() != VectorGraphicDataType::Pdf || m_aContext.UseReferenceXObject) 10060 rBitmaps.front().m_nObject = createObject(); 10061 createEmbeddedFile(rGraphic, rBitmaps.front().m_aReferenceXObject, rBitmaps.front().m_nObject); 10062 it = rBitmaps.begin(); 10063 } ** CID 1662041: Performance inefficiencies (COPY_INSTEAD_OF_MOVE) _____________________________________________________________________________________________ *** CID 1662041: Performance inefficiencies (COPY_INSTEAD_OF_MOVE) /vcl/source/image/ImplImageTree.cxx: 400 in <unnamed>::loadDiskCachedVersion(std::basic_string_view<char16_t, std::char_traits<char16_t>>, ImageRequestParameters &)() 394 if (!urlExists(sUrl)) 395 return false; 396 SvFileStream aFileStream(sUrl, StreamMode::READ); 397 vcl::PngImageReader aPNGReader(aFileStream); 398 Bitmap aTmp; 399 aPNGReader.read(aTmp); >>> CID 1662041: Performance inefficiencies (COPY_INSTEAD_OF_MOVE) >>> "aTmp" is copied in call to copy assignment for class "Bitmap", when it >>> could be moved instead. 400 rParameters.mrBitmap = aTmp; 401 return true; 402 } 403 404 void cacheBitmapToDisk(std::u16string_view sVariant, ImageRequestParameters const & rParameters) 405 { ** CID 1662040: (COPY_INSTEAD_OF_MOVE) _____________________________________________________________________________________________ *** CID 1662040: (COPY_INSTEAD_OF_MOVE) /vcl/source/image/ImplImageTree.cxx: 192 in <unnamed>::loadImageFromStream(const std::shared_ptr<SvStream> &, const rtl::OUString &, ImageRequestParameters &)() 186 // tdf#153421. Do not scale, individual crop handles are created from it using pixel unit. 187 if (rPath.endsWith("cropmarkers.svg")) 188 vcl::bitmap::loadFromSvg(*xStream, rPath, aTmp, 1.0); 189 else 190 #endif 191 vcl::bitmap::loadFromSvg(*xStream, rPath, aTmp, aScalePercentage / 100.0); >>> CID 1662040: (COPY_INSTEAD_OF_MOVE) >>> "aTmp" is copied in call to copy assignment for class "Bitmap", when it >>> could be moved instead. 192 rParameters.mrBitmap = aTmp; 193 194 if (bConvertToDarkTheme) 195 BitmapFilter::Filter(rParameters.mrBitmap, BitmapLightenFilter()); 196 197 return; /vcl/source/image/ImplImageTree.cxx: 179 in <unnamed>::loadImageFromStream(const std::shared_ptr<SvStream> &, const rtl::OUString &, ImageRequestParameters &)() 173 174 if (rPath.endsWith(".png")) 175 { 176 vcl::PngImageReader aPNGReader(*xStream); 177 Bitmap aTmp; 178 aPNGReader.read(aTmp); >>> CID 1662040: (COPY_INSTEAD_OF_MOVE) >>> "aTmp" is copied in call to copy assignment for class "Bitmap", when it >>> could be moved instead. 179 rParameters.mrBitmap = aTmp; 180 } 181 else if (rPath.endsWith(".svg")) 182 { 183 rParameters.mbWriteImageToCache = true; // We always want to cache a SVG image 184 Bitmap aTmp; ** CID 1662039: Concurrent data access violations (BAD_CHECK_OF_WAIT_COND) /ucb/source/ucp/webdav-curl/SerfLockStore.cxx: 79 in http_dav_ucp::TickerThread::execute()() _____________________________________________________________________________________________ *** CID 1662039: Concurrent data access violations (BAD_CHECK_OF_WAIT_COND) /ucb/source/ucp/webdav-curl/SerfLockStore.cxx: 79 in http_dav_ucp::TickerThread::execute()() 73 m_rLockStore.m_aCondition.wait( 74 aGuard, [this] { return !m_rLockStore.m_aLockInfoMap.empty() || m_bFinish; }); 75 } 76 else 77 { 78 // Wait until the next deadline or a notification >>> CID 1662039: Concurrent data access violations >>> (BAD_CHECK_OF_WAIT_COND) >>> A wait is performed without a loop. If there is a spurious wakeup, the >>> condition may not be satisfied. [Note: The source code implementation of >>> the function has been overridden by a builtin model.] 79 m_rLockStore.m_aCondition.wait_for(aGuard, sleep_duration); 80 } 81 } 82 83 SAL_INFO("ucb.ucp.webdav", "TickerThread: stop."); 84 } ** CID 1662038: Performance inefficiencies (COPY_INSTEAD_OF_MOVE) _____________________________________________________________________________________________ *** CID 1662038: Performance inefficiencies (COPY_INSTEAD_OF_MOVE) /vcl/source/image/ImplImage.cxx: 108 in ImplImage::loadStockAtScale(SalGraphics *, Bitmap &)() 102 { 103 SAL_WARN_IF(!bOptional, "vcl", 104 "Failed to load scaled image from " << maStockName << " at " << fScale); 105 return false; 106 } 107 } >>> CID 1662038: Performance inefficiencies (COPY_INSTEAD_OF_MOVE) >>> "aBitmap" is copied in call to copy assignment for class "Bitmap", when >>> it could be moved instead. 108 rBitmap = aBitmap; 109 return true; 110 } 111 112 Size ImplImage::getSizePixel() 113 { ________________________________________________________________________________________________________ To view the defects in Coverity Scan visit, https://scan.coverity.com/projects/libreoffice?tab=overview