Hi, Please find the latest report on new defect(s) introduced to LibreOffice found with Coverity Scan.
53 new defect(s) introduced to LibreOffice found with Coverity Scan. New defect(s) Reported-by: Coverity Scan Showing 20 of 53 defect(s) ** CID 1521198: Insecure data handling (TAINTED_SCALAR) /vcl/unx/generic/fontmanager/fontmanager.cxx: 254 in psp::PrintFontManager::analyzeFontFile(int, const rtl::OString &, const char *) const() ________________________________________________________________________________________________________ *** CID 1521198: Insecure data handling (TAINTED_SCALAR) /vcl/unx/generic/fontmanager/fontmanager.cxx: 254 in psp::PrintFontManager::analyzeFontFile(int, const rtl::OString &, const char *) const() 248 //https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy03K-2F9QL4mGS3H4UobiiNRB-2FzSYkBMAms3MjYB2IGSzKfAuqY0cYzepBSORwrEJCkA-3D-3DLZs8_OTq2XUZbbipYjyLSo6GRo-2FpVxQ9OzkDINu9UTS-2FQhSdO0F0jQniitrGlNxDIzPJifoBxogASetu34-2BU0UHBVuWY-2Bpxt9kEe94w0WJq2L7hWs1oVzVC92iVO8uClhrZftTsQVs-2BQ5miwAAMJvvndQgstSLBC86wZ32d6JypjiqmurtqACdlK-2BO4-2FeC41jmrQvBwT2pKGl7noBIWB37OAeGfxSzIToOMRfendVKu-2FYGxQ-3D 249 const int nMaxFontsPossible = fileSize / 528; 250 if (nLength > nMaxFontsPossible) 251 nLength = nMaxFontsPossible; 252 } 253 >>> CID 1521198: Insecure data handling (TAINTED_SCALAR) >>> Using tainted variable "nLength" as a loop boundary. 254 for( int i = 0; i < nLength; i++ ) 255 { 256 PrintFont aFont; 257 aFont.m_nDirectory = nDirID; 258 aFont.m_aFontFile = rFontFile; 259 aFont.m_nCollectionEntry = i; ** CID 1521197: Memory - corruptions (OVERRUN) ________________________________________________________________________________________________________ *** CID 1521197: Memory - corruptions (OVERRUN) /workdir/UnpackedTarball/harfbuzz/src/hb-aat-layout-morx-table.hh: 911 in AAT::ChainSubtable<AAT::ObsoleteTypes>::dispatch<hb_sanitize_context_t>(T1*, T2 &&...) const() 905 { 906 unsigned int subtable_type = get_type (); 907 TRACE_DISPATCH (this, subtable_type); 908 switch (subtable_type) { 909 case Rearrangement: return_trace (c->dispatch (u.rearrangement, std::forward<Ts> (ds)...)); 910 case Contextual: return_trace (c->dispatch (u.contextual, std::forward<Ts> (ds)...)); >>> CID 1521197: Memory - corruptions (OVERRUN) >>> Overrunning struct type _ZN3AAT16LigatureSubtableINS_13ObsoleteTypesEEE >>> of 14 bytes by passing it to a function which accesses it at byte offset 27. 911 case Ligature: return_trace (c->dispatch (u.ligature, std::forward<Ts> (ds)...)); 912 case Noncontextual: return_trace (c->dispatch (u.noncontextual, std::forward<Ts> (ds)...)); 913 case Insertion: return_trace (c->dispatch (u.insertion, std::forward<Ts> (ds)...)); 914 default: return_trace (c->default_return_value ()); 915 } 916 } ** CID 1521196: (USE_AFTER_FREE) /vcl/unx/generic/glyphs/freetype_glyphcache.cxx: 328 in FreetypeFontFace::GetHbFace() const() /vcl/unx/generic/glyphs/freetype_glyphcache.cxx: 328 in FreetypeFontFace::GetHbFace() const() ________________________________________________________________________________________________________ *** CID 1521196: (USE_AFTER_FREE) /vcl/unx/generic/glyphs/freetype_glyphcache.cxx: 328 in FreetypeFontFace::GetHbFace() const() 322 if (!mpHbFace) 323 { 324 auto* pFileName = mpFreetypeFontInfo->GetFontFileName().getStr(); 325 auto nIndex = mpFreetypeFontInfo->GetFontFaceIndex(); 326 hb_blob_t* pHbBlob = hb_blob_create_from_file(pFileName); 327 mpHbFace = hb_face_create(pHbBlob, nIndex); >>> CID 1521196: (USE_AFTER_FREE) >>> Passing freed pointer "pHbBlob" as an argument to "hb_blob_destroy". 328 hb_blob_destroy(pHbBlob); 329 } 330 return mpHbFace; 331 } 332 333 hb_blob_t* FreetypeFontFace::GetHbTable(hb_tag_t nTag) const /vcl/unx/generic/glyphs/freetype_glyphcache.cxx: 328 in FreetypeFontFace::GetHbFace() const() 322 if (!mpHbFace) 323 { 324 auto* pFileName = mpFreetypeFontInfo->GetFontFileName().getStr(); 325 auto nIndex = mpFreetypeFontInfo->GetFontFaceIndex(); 326 hb_blob_t* pHbBlob = hb_blob_create_from_file(pFileName); 327 mpHbFace = hb_face_create(pHbBlob, nIndex); >>> CID 1521196: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "pHbBlob" which has already >>> been freed. 328 hb_blob_destroy(pHbBlob); 329 } 330 return mpHbFace; 331 } 332 333 hb_blob_t* FreetypeFontFace::GetHbTable(hb_tag_t nTag) const ** CID 1521195: Error handling issues (NEGATIVE_RETURNS) /workdir/UnpackedTarball/harfbuzz/src/hb-blob.cc: 744 in hb_blob_create_from_file_or_fail() ________________________________________________________________________________________________________ *** CID 1521195: Error handling issues (NEGATIVE_RETURNS) /workdir/UnpackedTarball/harfbuzz/src/hb-blob.cc: 744 in hb_blob_create_from_file_or_fail() 738 FILE *fp; 739 int nFD; 740 int n; 741 if (sscanf (file_name, "/:FD:/%d%n", &nFD, &n) == 1 && file_name[n] == '\0') 742 { 743 lseek (nFD, 0, SEEK_SET); >>> CID 1521195: Error handling issues (NEGATIVE_RETURNS) >>> "dup(nFD)" is passed to a parameter that cannot be negative. 744 fp = fdopen (dup (nFD), "rb"); 745 } 746 else 747 { 748 fp = fopen (file_name, "rb"); 749 } ** CID 1521194: (ORDER_REVERSAL) ________________________________________________________________________________________________________ *** CID 1521194: (ORDER_REVERSAL) /sfx2/source/notify/eventsupplier.cxx: 85 in SfxEvents_Impl::replaceByName(const rtl::OUString &, const com::sun::star::uno::Any &)() 79 } 80 81 ::comphelper::NamedValueCollection aNormalizedDescriptor; 82 NormalizeMacro( aEventDescriptor, aNormalizedDescriptor, mpObjShell ); 83 84 OUString sType; >>> CID 1521194: (ORDER_REVERSAL) >>> Calling "~OUString" acquires lock "_oslMutexImpl.mutex" while holding >>> lock "std::unique_lock<std::mutex>._M_device" (count: 2 / 4). 85 if ( ( aNormalizedDescriptor.size() == 1 ) 86 && !aNormalizedDescriptor.has( PROP_EVENT_TYPE ) //TODO 87 && ( aNormalizedDescriptor.get( PROP_EVENT_TYPE ) >>= sType ) 88 && ( sType.isEmpty() ) 89 ) 90 { /sfx2/source/notify/eventsupplier.cxx: 85 in SfxEvents_Impl::replaceByName(const rtl::OUString &, const com::sun::star::uno::Any &)() 79 } 80 81 ::comphelper::NamedValueCollection aNormalizedDescriptor; 82 NormalizeMacro( aEventDescriptor, aNormalizedDescriptor, mpObjShell ); 83 84 OUString sType; >>> CID 1521194: (ORDER_REVERSAL) >>> Calling "operator >>=" acquires lock "_oslMutexImpl.mutex" while >>> holding lock "std::unique_lock<std::mutex>._M_device" (count: 2 / 4). 85 if ( ( aNormalizedDescriptor.size() == 1 ) 86 && !aNormalizedDescriptor.has( PROP_EVENT_TYPE ) //TODO 87 && ( aNormalizedDescriptor.get( PROP_EVENT_TYPE ) >>= sType ) 88 && ( sType.isEmpty() ) 89 ) 90 { /sfx2/source/notify/eventsupplier.cxx: 101 in SfxEvents_Impl::replaceByName(const rtl::OUString &, const com::sun::star::uno::Any &)() 95 OSL_ENSURE( false, "legacy event assignment format detected" ); 96 aNormalizedDescriptor.clear(); 97 } 98 99 if ( !aNormalizedDescriptor.empty() ) 100 { >>> CID 1521194: (ORDER_REVERSAL) >>> Calling "getPropertyValues" acquires lock "_oslMutexImpl.mutex" while >>> holding lock "std::unique_lock<std::mutex>._M_device" (count: 2 / 4). 101 maEventData[nIndex] = aNormalizedDescriptor.getPropertyValues(); 102 } 103 else 104 { 105 maEventData[nIndex] = {}; 106 } /sfx2/source/notify/eventsupplier.cxx: 105 in SfxEvents_Impl::replaceByName(const rtl::OUString &, const com::sun::star::uno::Any &)() 99 if ( !aNormalizedDescriptor.empty() ) 100 { 101 maEventData[nIndex] = aNormalizedDescriptor.getPropertyValues(); 102 } 103 else 104 { >>> CID 1521194: (ORDER_REVERSAL) >>> Calling "Sequence" acquires lock "_oslMutexImpl.mutex" while holding >>> lock "std::unique_lock<std::mutex>._M_device" (count: 2 / 4). 105 maEventData[nIndex] = {}; 106 } 107 } 108 109 110 // --- XNameAccess --- /sfx2/source/notify/eventsupplier.cxx: 96 in SfxEvents_Impl::replaceByName(const rtl::OUString &, const com::sun::star::uno::Any &)() 90 { 91 // An empty event type means no binding. Therefore reset data 92 // to reflect that state. 93 // (that's for compatibility only. Nowadays, the Tools/Customize dialog should 94 // set an empty sequence to indicate the request for resetting the assignment.) 95 OSL_ENSURE( false, "legacy event assignment format detected" ); >>> CID 1521194: (ORDER_REVERSAL) >>> Calling "clear" acquires lock "_oslMutexImpl.mutex" while holding lock >>> "std::unique_lock<std::mutex>._M_device" (count: 2 / 4). 96 aNormalizedDescriptor.clear(); 97 } 98 99 if ( !aNormalizedDescriptor.empty() ) 100 { 101 maEventData[nIndex] = aNormalizedDescriptor.getPropertyValues(); /sfx2/source/notify/eventsupplier.cxx: 101 in SfxEvents_Impl::replaceByName(const rtl::OUString &, const com::sun::star::uno::Any &)() 95 OSL_ENSURE( false, "legacy event assignment format detected" ); 96 aNormalizedDescriptor.clear(); 97 } 98 99 if ( !aNormalizedDescriptor.empty() ) 100 { >>> CID 1521194: (ORDER_REVERSAL) >>> Calling "~Sequence" acquires lock "_oslMutexImpl.mutex" while holding >>> lock "std::unique_lock<std::mutex>._M_device" (count: 2 / 4). 101 maEventData[nIndex] = aNormalizedDescriptor.getPropertyValues(); 102 } 103 else 104 { 105 maEventData[nIndex] = {}; 106 } /sfx2/source/notify/eventsupplier.cxx: 105 in SfxEvents_Impl::replaceByName(const rtl::OUString &, const com::sun::star::uno::Any &)() 99 if ( !aNormalizedDescriptor.empty() ) 100 { 101 maEventData[nIndex] = aNormalizedDescriptor.getPropertyValues(); 102 } 103 else 104 { >>> CID 1521194: (ORDER_REVERSAL) >>> Calling "~Sequence" acquires lock "_oslMutexImpl.mutex" while holding >>> lock "std::unique_lock<std::mutex>._M_device" (count: 2 / 4). 105 maEventData[nIndex] = {}; 106 } 107 } 108 109 110 // --- XNameAccess --- /sfx2/source/notify/eventsupplier.cxx: 107 in SfxEvents_Impl::replaceByName(const rtl::OUString &, const com::sun::star::uno::Any &)() 101 maEventData[nIndex] = aNormalizedDescriptor.getPropertyValues(); 102 } 103 else 104 { 105 maEventData[nIndex] = {}; 106 } >>> CID 1521194: (ORDER_REVERSAL) >>> Calling "~OUString" acquires lock "_oslMutexImpl.mutex" while holding >>> lock "std::unique_lock<std::mutex>._M_device" (count: 2 / 4). 107 } 108 109 110 // --- XNameAccess --- 111 112 uno::Any SAL_CALL SfxEvents_Impl::getByName( const OUString& aName ) ** CID 1521193: Memory - illegal accesses (NEGATIVE_RETURNS) /workdir/UnpackedTarball/harfbuzz/src/hb-icu.cc: 222 in hb_icu_unicode_decompose(hb_unicode_funcs_t *, unsigned int, unsigned int *, unsigned int *, void *)() ________________________________________________________________________________________________________ *** CID 1521193: Memory - illegal accesses (NEGATIVE_RETURNS) /workdir/UnpackedTarball/harfbuzz/src/hb-icu.cc: 222 in hb_icu_unicode_decompose(hb_unicode_funcs_t *, unsigned int, unsigned int *, unsigned int *, void *)() 216 ARRAY_LENGTH (decomposed), &icu_err); 217 if (U_FAILURE (icu_err) || len < 0) return false; 218 219 len = u_countChar32 (decomposed, len); 220 if (len == 1) 221 { >>> CID 1521193: Memory - illegal accesses (NEGATIVE_RETURNS) >>> Using negative constant "-1" as an index to array "decomposed". 222 U16_GET_UNSAFE (decomposed, 0, *a); 223 *b = 0; 224 return *a != ab; 225 } 226 else if (len == 2) 227 { ** CID 1521192: Error handling issues (NEGATIVE_RETURNS) /vcl/source/fontsubset/sft.cxx: 1085 in vcl::CountTTCFonts(const char *)() ________________________________________________________________________________________________________ *** CID 1521192: Error handling issues (NEGATIVE_RETURNS) /vcl/source/fontsubset/sft.cxx: 1085 in vcl::CountTTCFonts(const char *)() 1079 #ifdef LINUX 1080 int nFD; 1081 int n; 1082 if (sscanf(fname, "/:FD:/%d%n", &nFD, &n) == 1 && fname[n] == '\0') 1083 { 1084 lseek(nFD, 0, SEEK_SET); >>> CID 1521192: Error handling issues (NEGATIVE_RETURNS) >>> "dup(nFD)" is passed to a parameter that cannot be negative. 1085 fd = fdopen(dup(nFD), "rb"); 1086 } 1087 else 1088 #endif 1089 fd = fopen(fname, "rb"); 1090 if( fd ) { ** CID 1521191: (UNINIT) ________________________________________________________________________________________________________ *** CID 1521191: (UNINIT) /workdir/UnpackedTarball/harfbuzz/src/hb-vector.hh: 249 in hb_vector_t<CFF::cff1_private_dict_values_base_t<CFF::dict_val_t>, (bool)0>::realloc_vector<CFF::cff1_private_dict_values_base_t<CFF::dict_val_t>, (void *)0>(unsigned int)() 243 Type *new_array = (Type *) hb_malloc (new_allocated * sizeof (Type)); 244 if (likely (new_array)) 245 { 246 for (unsigned i = 0; i < length; i++) 247 { 248 new (std::addressof (new_array[i])) Type (); >>> CID 1521191: (UNINIT) >>> Using uninitialized value "(new_array + i)->values.length" when calling >>> "operator =". 249 new_array[i] = std::move (arrayZ[i]); 250 arrayZ[i].~Type (); 251 } 252 hb_free (arrayZ); 253 } 254 return new_array; /workdir/UnpackedTarball/harfbuzz/src/hb-vector.hh: 249 in hb_vector_t<hb_set_t, (bool)0>::realloc_vector<hb_set_t, (void *)0>(unsigned int)() 243 Type *new_array = (Type *) hb_malloc (new_allocated * sizeof (Type)); 244 if (likely (new_array)) 245 { 246 for (unsigned i = 0; i < length; i++) 247 { 248 new (std::addressof (new_array[i])) Type (); >>> CID 1521191: (UNINIT) >>> Using uninitialized value "(new_array + i)->s.s.population" when >>> calling "operator =". 249 new_array[i] = std::move (arrayZ[i]); 250 arrayZ[i].~Type (); 251 } 252 hb_free (arrayZ); 253 } 254 return new_array; /workdir/UnpackedTarball/harfbuzz/src/hb-vector.hh: 249 in hb_vector_t<CFF::cff2_private_dict_values_base_t<CFF::dict_val_t>, (bool)0>::realloc_vector<CFF::cff2_private_dict_values_base_t<CFF::dict_val_t>, (void *)0>(unsigned int)() 243 Type *new_array = (Type *) hb_malloc (new_allocated * sizeof (Type)); 244 if (likely (new_array)) 245 { 246 for (unsigned i = 0; i < length; i++) 247 { 248 new (std::addressof (new_array[i])) Type (); >>> CID 1521191: (UNINIT) >>> Using uninitialized value "(new_array + i)->values.length" when calling >>> "operator =". 249 new_array[i] = std::move (arrayZ[i]); 250 arrayZ[i].~Type (); 251 } 252 hb_free (arrayZ); 253 } 254 return new_array; /workdir/UnpackedTarball/harfbuzz/src/hb-vector.hh: 249 in hb_vector_t<hb_set_t, (bool)0>::realloc_vector<hb_set_t, (void *)0>(unsigned int)() 243 Type *new_array = (Type *) hb_malloc (new_allocated * sizeof (Type)); 244 if (likely (new_array)) 245 { 246 for (unsigned i = 0; i < length; i++) 247 { 248 new (std::addressof (new_array[i])) Type (); >>> CID 1521191: (UNINIT) >>> Using uninitialized value "(new_array + i)->s.s.population" when >>> calling "operator =". 249 new_array[i] = std::move (arrayZ[i]); 250 arrayZ[i].~Type (); 251 } 252 hb_free (arrayZ); 253 } 254 return new_array; /workdir/UnpackedTarball/harfbuzz/src/hb-vector.hh: 249 in hb_vector_t<hb_set_t, (bool)0>::realloc_vector<hb_set_t, (void *)0>(unsigned int)() 243 Type *new_array = (Type *) hb_malloc (new_allocated * sizeof (Type)); 244 if (likely (new_array)) 245 { 246 for (unsigned i = 0; i < length; i++) 247 { 248 new (std::addressof (new_array[i])) Type (); >>> CID 1521191: (UNINIT) >>> Using uninitialized value "(new_array + i)->s.s.successful" when >>> calling "operator =". 249 new_array[i] = std::move (arrayZ[i]); 250 arrayZ[i].~Type (); 251 } 252 hb_free (arrayZ); 253 } 254 return new_array; /workdir/UnpackedTarball/harfbuzz/src/hb-vector.hh: 249 in hb_vector_t<CFF::cff2_font_dict_values_t, (bool)0>::realloc_vector<CFF::cff2_font_dict_values_t, (void *)0>(unsigned int)() 243 Type *new_array = (Type *) hb_malloc (new_allocated * sizeof (Type)); 244 if (likely (new_array)) 245 { 246 for (unsigned i = 0; i < length; i++) 247 { 248 new (std::addressof (new_array[i])) Type (); >>> CID 1521191: (UNINIT) >>> Using uninitialized value "(new_array + i)->values.length" when calling >>> "operator =". 249 new_array[i] = std::move (arrayZ[i]); 250 arrayZ[i].~Type (); 251 } 252 hb_free (arrayZ); 253 } 254 return new_array; /workdir/UnpackedTarball/harfbuzz/src/hb-vector.hh: 249 in hb_vector_t<CFF::cff1_font_dict_values_t, (bool)0>::realloc_vector<CFF::cff1_font_dict_values_t, (void *)0>(unsigned int)() 243 Type *new_array = (Type *) hb_malloc (new_allocated * sizeof (Type)); 244 if (likely (new_array)) 245 { 246 for (unsigned i = 0; i < length; i++) 247 { 248 new (std::addressof (new_array[i])) Type (); >>> CID 1521191: (UNINIT) >>> Using uninitialized value "(new_array + i)->values.length" when calling >>> "operator =". 249 new_array[i] = std::move (arrayZ[i]); 250 arrayZ[i].~Type (); 251 } 252 hb_free (arrayZ); 253 } 254 return new_array; ** CID 1521190: Memory - corruptions (USE_AFTER_FREE) /vcl/source/gdi/pdfwriter_impl.cxx: 6267 in vcl::PDFWriterImpl::registerGlyph(unsigned int, const vcl::font::PhysicalFontFace *, const LogicalFontInstance *, const std::vector<char16_t, std::allocator<char16_t>> &, int, unsigned char &, int &)() ________________________________________________________________________________________________________ *** CID 1521190: Memory - corruptions (USE_AFTER_FREE) /vcl/source/gdi/pdfwriter_impl.cxx: 6267 in vcl::PDFWriterImpl::registerGlyph(unsigned int, const vcl::font::PhysicalFontFace *, const LogicalFontInstance *, const std::vector<char16_t, std::allocator<char16_t>> &, int, unsigned char &, int &)() 6261 6262 // add new glyph to font mapping 6263 Glyph& rNewGlyph = rSubset.m_aMapping[nFontGlyphId]; 6264 rNewGlyph.m_nFontID = nMappedFontObject; 6265 rNewGlyph.m_nSubsetGlyphID = nNewId; 6266 } >>> CID 1521190: Memory - corruptions (USE_AFTER_FREE) >>> Calling "~RawFontData" frees pointer "aBitmap.mpBlob" which has already >>> been freed. 6267 return; 6268 } 6269 } 6270 6271 // If we reach here then the glyph has no color layers. 6272 registerSimpleGlyph(nFontGlyphId, pFace, rCodeUnits, nGlyphWidth, nMappedGlyph, ** CID 1521189: Error handling issues (CHECKED_RETURN) /workdir/UnpackedTarball/harfbuzz/src/hb-shape.cc: 195 in hb_shape() ________________________________________________________________________________________________________ *** CID 1521189: Error handling issues (CHECKED_RETURN) /workdir/UnpackedTarball/harfbuzz/src/hb-shape.cc: 195 in hb_shape() 189 void 190 hb_shape (hb_font_t *font, 191 hb_buffer_t *buffer, 192 const hb_feature_t *features, 193 unsigned int num_features) 194 { >>> CID 1521189: Error handling issues (CHECKED_RETURN) >>> Calling "hb_shape_full" without checking return value (as is done >>> elsewhere 4 out of 5 times). 195 hb_shape_full (font, buffer, features, num_features, nullptr); 196 } 197 198 ** CID 1521188: Uninitialized variables (UNINIT) ________________________________________________________________________________________________________ *** CID 1521188: Uninitialized variables (UNINIT) /extensions/source/update/check/updatecheck.cxx: 666 in <unnamed>::DownloadThread::run()() 660 661 if( n < SAL_N_ELEMENTS(nRetryInterval) ) 662 ++n; 663 664 tv.Seconds = nRetryInterval[n-1]; 665 } >>> CID 1521188: Uninitialized variables (UNINIT) >>> Using uninitialized value "tv.Nanosec" when calling "wait". 666 m_aCondition.wait(&tv); 667 } 668 else 669 { 670 // reset wait period after successful download 671 n=0; ** CID 1521187: Memory - corruptions (OVERRUN) ________________________________________________________________________________________________________ *** CID 1521187: Memory - corruptions (OVERRUN) /workdir/UnpackedTarball/harfbuzz/src/hb-aat-layout-morx-table.hh: 913 in AAT::ChainSubtable<AAT::ObsoleteTypes>::dispatch<hb_sanitize_context_t>(T1*, T2 &&...) const() 907 TRACE_DISPATCH (this, subtable_type); 908 switch (subtable_type) { 909 case Rearrangement: return_trace (c->dispatch (u.rearrangement, std::forward<Ts> (ds)...)); 910 case Contextual: return_trace (c->dispatch (u.contextual, std::forward<Ts> (ds)...)); 911 case Ligature: return_trace (c->dispatch (u.ligature, std::forward<Ts> (ds)...)); 912 case Noncontextual: return_trace (c->dispatch (u.noncontextual, std::forward<Ts> (ds)...)); >>> CID 1521187: Memory - corruptions (OVERRUN) >>> Overrunning struct type >>> _ZN3AAT17InsertionSubtableINS_13ObsoleteTypesEEE of 10 bytes by passing it >>> to a function which accesses it at byte offset 19. 913 case Insertion: return_trace (c->dispatch (u.insertion, std::forward<Ts> (ds)...)); 914 default: return_trace (c->default_return_value ()); 915 } 916 } 917 918 bool apply (hb_aat_apply_context_t *c) const ** CID 1518616: Control flow issues (UNREACHABLE) /workdir/UnpackedTarball/harfbuzz/src/hb-algs.hh: 885 in hb_unsigned_mul_overflows(unsigned int, unsigned int, unsigned int *)() ________________________________________________________________________________________________________ *** CID 1518616: Control flow issues (UNREACHABLE) /workdir/UnpackedTarball/harfbuzz/src/hb-algs.hh: 885 in hb_unsigned_mul_overflows(unsigned int, unsigned int, unsigned int *)() 879 unsigned stack_result; 880 if (!result) 881 result = &stack_result; 882 return __builtin_mul_overflow (count, size, result); 883 #endif 884 >>> CID 1518616: Control flow issues (UNREACHABLE) >>> This code cannot be reached: "if (result) *result = cou...". 885 if (result) 886 *result = count * size; 887 return (size > 0) && (count >= ((unsigned int) -1) / size); 888 } 889 890 ** CID 1515939: Performance inefficiencies (AUTO_CAUSES_COPY) /workdir/UnpackedTarball/harfbuzz/src/hb-face.cc: 682 in _hb_face_builder_data_destroy(void *)() ________________________________________________________________________________________________________ *** CID 1515939: Performance inefficiencies (AUTO_CAUSES_COPY) /workdir/UnpackedTarball/harfbuzz/src/hb-face.cc: 682 in _hb_face_builder_data_destroy(void *)() 676 677 static void 678 _hb_face_builder_data_destroy (void *user_data) 679 { 680 hb_face_builder_data_t *data = (hb_face_builder_data_t *) user_data; 681 >>> CID 1515939: Performance inefficiencies (AUTO_CAUSES_COPY) >>> Using the "auto" keyword without an "&" causes the copy of an object of >>> type face_table_info_t. 682 for (auto info : data->tables.values()) 683 hb_blob_destroy (info.data); 684 685 data->tables.fini (); 686 687 hb_free (data); ** CID 1515938: Performance inefficiencies (AUTO_CAUSES_COPY) /workdir/UnpackedTarball/harfbuzz/src/hb-face.cc: 697 in _hb_face_builder_data_reference_blob(hb_face_builder_data_t *)() ________________________________________________________________________________________________________ *** CID 1515938: Performance inefficiencies (AUTO_CAUSES_COPY) /workdir/UnpackedTarball/harfbuzz/src/hb-face.cc: 697 in _hb_face_builder_data_reference_blob(hb_face_builder_data_t *)() 691 _hb_face_builder_data_reference_blob (hb_face_builder_data_t *data) 692 { 693 694 unsigned int table_count = data->tables.get_population (); 695 unsigned int face_length = table_count * 16 + 12; 696 >>> CID 1515938: Performance inefficiencies (AUTO_CAUSES_COPY) >>> Using the "auto" keyword without an "&" causes the copy of an object of >>> type face_table_info_t. 697 for (auto info : data->tables.values()) 698 face_length += hb_ceil_to_4 (hb_blob_get_length (info.data)); 699 700 char *buf = (char *) hb_malloc (face_length); 701 if (unlikely (!buf)) 702 return nullptr; ** CID 1513074: (USE_AFTER_MOVE) /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::List16OfOffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, (unsigned int)2>> *, unsigned int>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ChainContextFormat1_4<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ContextFormat2_5<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::ClipRecord, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::ClipList *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::MathKernInfoRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::MathKernInfo *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ChainContextFormat3 *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::MathValueRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::MathTopAccentAttachment *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ChainContextFormat2_5<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::BaseGlyphPaintRecord, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::BaseGlyphList *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::VariationSelectorRecord, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::CmapSubtableFormat14 *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::Layout::GPOS_impl::MarkRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GPOS_impl::MarkArray *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::SBIXStrike, OT::IntType<unsigned int, (unsigned int)4>, (bool)1>, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::sbix *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::BaseScriptRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::BaseScriptList *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::BaseCoord, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::BaseValues *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GSUB_impl::AlternateSubstFormat1_2<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::RuleSet<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::BitmapSizeTable, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::CBLC *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GPOS_impl::PairPosFormat1_3<OT::Layout::SmallTypes> *, OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>::sanitize_closure_t *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ContextFormat1_4<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, (unsigned int)4>, (bool)1>, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::LayerList *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ChainRuleSet<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::FeatMinMaxRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::MinMax *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::EncodingRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::cmap *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GSUB_impl::ReverseChainSingleSubstFormat1 *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<CFF::FDSelect3_4_Range<OT::IntType<unsigned int, (unsigned int)4>, OT::IntType<unsigned short, (unsigned int)2>>, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<std::nullptr_t, unsigned int &>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::BaseLangSysRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::BaseScript *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GSUB_impl::MultipleSubstFormat1_2<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<CFF::FDSelect3_4_Range<OT::IntType<unsigned short, (unsigned int)2>, OT::IntType<unsigned char, (unsigned int)1>>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<std::nullptr_t, unsigned int &>(hb_sanitize_context_t *, T1 &&...) const() /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::Layout::GPOS_impl::EntryExitRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GPOS_impl::CursivePosFormat1 *>(hb_sanitize_context_t *, T1 &&...) const() ________________________________________________________________________________________________________ *** CID 1513074: (USE_AFTER_MOVE) /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::List16OfOffsetTo<OT::Layout::GPOS_impl::AnchorMatrix, OT::IntType<unsigned short, (unsigned int)2>> *, unsigned int>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ChainContextFormat1_4<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ContextFormat2_5<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::ClipRecord, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::ClipList *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::MathKernInfoRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::MathKernInfo *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ChainContextFormat3 *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::MathValueRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::MathTopAccentAttachment *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::ChainRuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ChainContextFormat2_5<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::BaseGlyphPaintRecord, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::BaseGlyphList *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::VariationSelectorRecord, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::CmapSubtableFormat14 *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::Layout::GPOS_impl::MarkRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GPOS_impl::MarkArray *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::SBIXStrike, OT::IntType<unsigned int, (unsigned int)4>, (bool)1>, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::sbix *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::BaseScriptRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::BaseScriptList *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::BaseCoord, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::BaseValues *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::GSUB_impl::AlternateSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GSUB_impl::AlternateSubstFormat1_2<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Rule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::RuleSet<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::BitmapSizeTable, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::CBLC *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GPOS_impl::PairPosFormat1_3<OT::Layout::SmallTypes> *, OT::Layout::GPOS_impl::PairSet<OT::Layout::SmallTypes>::sanitize_closure_t *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::GSUB_impl::Ligature<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GSUB_impl::LigatureSet<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::RuleSet<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ContextFormat1_4<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Paint, OT::IntType<unsigned int, (unsigned int)4>, (bool)1>, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<const OT::LayerList *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::ChainRule<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::ChainRuleSet<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::FeatMinMaxRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::MinMax *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::EncodingRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::cmap *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::Common::Coverage, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GSUB_impl::ReverseChainSingleSubstFormat1 *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<CFF::FDSelect3_4_Range<OT::IntType<unsigned int, (unsigned int)4>, OT::IntType<unsigned short, (unsigned int)2>>, OT::IntType<unsigned int, (unsigned int)4>>::sanitize<std::nullptr_t, unsigned int &>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::BaseLangSysRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::BaseScript *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::OffsetTo<OT::Layout::GSUB_impl::Sequence<OT::Layout::SmallTypes>, OT::IntType<unsigned short, (unsigned int)2>, (bool)1>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GSUB_impl::MultipleSubstFormat1_2<OT::Layout::SmallTypes> *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<CFF::FDSelect3_4_Range<OT::IntType<unsigned short, (unsigned int)2>, OT::IntType<unsigned char, (unsigned int)1>>, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<std::nullptr_t, unsigned int &>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const /workdir/UnpackedTarball/harfbuzz/src/hb-open-type.hh: 729 in OT::ArrayOf<OT::Layout::GPOS_impl::EntryExitRecord, OT::IntType<unsigned short, (unsigned int)2>>::sanitize<const OT::Layout::GPOS_impl::CursivePosFormat1 *>(hb_sanitize_context_t *, T1 &&...) const() 723 { 724 TRACE_SANITIZE (this); 725 if (unlikely (!sanitize_shallow (c))) return_trace (false); 726 if (!sizeof... (Ts) && hb_is_trivially_copyable(Type)) return_trace (true); 727 unsigned int count = len; 728 for (unsigned int i = 0; i < count; i++) >>> CID 1513074: (USE_AFTER_MOVE) >>> "ds" is used after it has been already moved. 729 if (unlikely (!c->dispatch (arrayZ[i], std::forward<Ts> (ds)...))) 730 return_trace (false); 731 return_trace (true); 732 } 733 734 bool sanitize_shallow (hb_sanitize_context_t *c) const ** CID 1513058: (AUTO_CAUSES_COPY) /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/CoverageFormat2.hh: 85 in OT::Layout::Common::CoverageFormat2_4<OT::Layout::SmallTypes>::serialize<hb_sorted_array_t<const OT::HBGlyphID16>, (void *)0>(hb_serialize_context_t *, T1)() /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/CoverageFormat2.hh: 98 in OT::Layout::Common::CoverageFormat2_4<OT::Layout::SmallTypes>::serialize<hb_sorted_array_t<const OT::HBGlyphID16>, (void *)0>(hb_serialize_context_t *, T1)() /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/CoverageFormat2.hh: 85 in OT::Layout::Common::CoverageFormat2_4<OT::Layout::SmallTypes>::serialize<hb_map_iter_t<hb_zip_iter_t<hb_sorted_array_t<OT::HBGlyphID16>, hb_array_t<OT::HBGlyphID16>>, const [unnamed type of 'hb_first'] &, (hb_function_sortedness_t)1, (void *)0>, (void *)0>(hb_serialize_context_t *, T1)() /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/CoverageFormat2.hh: 98 in OT::Layout::Common::CoverageFormat2_4<OT::Layout::SmallTypes>::serialize<hb_map_iter_t<hb_zip_iter_t<hb_sorted_array_t<OT::HBGlyphID16>, hb_array_t<OT::HBGlyphID16>>, const [unnamed type of 'hb_first'] &, (hb_function_sortedness_t)1, (void *)0>, (void *)0>(hb_serialize_context_t *, T1)() ________________________________________________________________________________________________________ *** CID 1513058: (AUTO_CAUSES_COPY) /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/CoverageFormat2.hh: 85 in OT::Layout::Common::CoverageFormat2_4<OT::Layout::SmallTypes>::serialize<hb_sorted_array_t<const OT::HBGlyphID16>, (void *)0>(hb_serialize_context_t *, T1)() 79 { 80 TRACE_SERIALIZE (this); 81 if (unlikely (!c->extend_min (this))) return_trace (false); 82 83 unsigned num_ranges = 0; 84 hb_codepoint_t last = (hb_codepoint_t) -2; >>> CID 1513058: (AUTO_CAUSES_COPY) >>> Using the "auto" keyword without an "&" causes the copy of an object of >>> type HBGlyphID16. 85 for (auto g: glyphs) 86 { 87 if (last + 1 != g) 88 num_ranges++; 89 last = g; 90 } /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/CoverageFormat2.hh: 98 in OT::Layout::Common::CoverageFormat2_4<OT::Layout::SmallTypes>::serialize<hb_sorted_array_t<const OT::HBGlyphID16>, (void *)0>(hb_serialize_context_t *, T1)() 92 if (unlikely (!rangeRecord.serialize (c, num_ranges))) return_trace (false); 93 if (!num_ranges) return_trace (true); 94 95 unsigned count = 0; 96 unsigned range = (unsigned) -1; 97 last = (hb_codepoint_t) -2; >>> CID 1513058: (AUTO_CAUSES_COPY) >>> Using the "auto" keyword without an "&" causes the copy of an object of >>> type HBGlyphID16. 98 for (auto g: glyphs) 99 { 100 if (last + 1 != g) 101 { 102 range++; 103 rangeRecord[range].first = g; /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/CoverageFormat2.hh: 85 in OT::Layout::Common::CoverageFormat2_4<OT::Layout::SmallTypes>::serialize<hb_map_iter_t<hb_zip_iter_t<hb_sorted_array_t<OT::HBGlyphID16>, hb_array_t<OT::HBGlyphID16>>, const [unnamed type of 'hb_first'] &, (hb_function_sortedness_t)1, (void *)0>, (void *)0>(hb_serialize_context_t *, T1)() 79 { 80 TRACE_SERIALIZE (this); 81 if (unlikely (!c->extend_min (this))) return_trace (false); 82 83 unsigned num_ranges = 0; 84 hb_codepoint_t last = (hb_codepoint_t) -2; >>> CID 1513058: (AUTO_CAUSES_COPY) >>> Using the "auto" keyword without an "&" causes the copy of an object of >>> type HBGlyphID16. 85 for (auto g: glyphs) 86 { 87 if (last + 1 != g) 88 num_ranges++; 89 last = g; 90 } /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/CoverageFormat2.hh: 98 in OT::Layout::Common::CoverageFormat2_4<OT::Layout::SmallTypes>::serialize<hb_map_iter_t<hb_zip_iter_t<hb_sorted_array_t<OT::HBGlyphID16>, hb_array_t<OT::HBGlyphID16>>, const [unnamed type of 'hb_first'] &, (hb_function_sortedness_t)1, (void *)0>, (void *)0>(hb_serialize_context_t *, T1)() 92 if (unlikely (!rangeRecord.serialize (c, num_ranges))) return_trace (false); 93 if (!num_ranges) return_trace (true); 94 95 unsigned count = 0; 96 unsigned range = (unsigned) -1; 97 last = (hb_codepoint_t) -2; >>> CID 1513058: (AUTO_CAUSES_COPY) >>> Using the "auto" keyword without an "&" causes the copy of an object of >>> type HBGlyphID16. 98 for (auto g: glyphs) 99 { 100 if (last + 1 != g) 101 { 102 range++; 103 rangeRecord[range].first = g; ** CID 1513048: Performance inefficiencies (AUTO_CAUSES_COPY) /workdir/UnpackedTarball/harfbuzz/src/hb-map.hh: 300 in hb_hashmap_t<unsigned int, unsigned int, (bool)1>::is_equal(const hb_hashmap_t<unsigned int, unsigned int, (bool)1>&) const() ________________________________________________________________________________________________________ *** CID 1513048: Performance inefficiencies (AUTO_CAUSES_COPY) /workdir/UnpackedTarball/harfbuzz/src/hb-map.hh: 300 in hb_hashmap_t<unsigned int, unsigned int, (bool)1>::is_equal(const hb_hashmap_t<unsigned int, unsigned int, (bool)1>&) const() 294 } 295 296 bool is_equal (const hb_hashmap_t &other) const 297 { 298 if (population != other.population) return false; 299 >>> CID 1513048: Performance inefficiencies (AUTO_CAUSES_COPY) >>> Using the "auto" keyword without an "&" causes the copy of an object of >>> type hb_pair_t. 300 for (auto pair : iter ()) 301 if (other.get (pair.first) != pair.second) 302 return false; 303 304 return true; 305 } ** CID 1513044: (AUTO_CAUSES_COPY) /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/Coverage.hh: 119 in OT::Layout::Common::Coverage::serialize<hb_sorted_array_t<const OT::HBGlyphID16>, (void *)0>(hb_serialize_context_t *, T1)() /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/Coverage.hh: 119 in OT::Layout::Common::Coverage::serialize<hb_map_iter_t<hb_zip_iter_t<hb_sorted_array_t<OT::HBGlyphID16>, hb_array_t<OT::HBGlyphID16>>, const [unnamed type of 'hb_first'] &, (hb_function_sortedness_t)1, (void *)0>, (void *)0>(hb_serialize_context_t *, T1)() ________________________________________________________________________________________________________ *** CID 1513044: (AUTO_CAUSES_COPY) /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/Coverage.hh: 119 in OT::Layout::Common::Coverage::serialize<hb_sorted_array_t<const OT::HBGlyphID16>, (void *)0>(hb_serialize_context_t *, T1)() 113 TRACE_SERIALIZE (this); 114 if (unlikely (!c->extend_min (this))) return_trace (false); 115 116 unsigned count = 0; 117 unsigned num_ranges = 0; 118 hb_codepoint_t last = (hb_codepoint_t) -2; >>> CID 1513044: (AUTO_CAUSES_COPY) >>> Using the "auto" keyword without an "&" causes the copy of an object of >>> type HBGlyphID16. 119 for (auto g: glyphs) 120 { 121 if (last + 1 != g) 122 num_ranges++; 123 last = g; 124 count++; /workdir/UnpackedTarball/harfbuzz/src/OT/Layout/Common/Coverage.hh: 119 in OT::Layout::Common::Coverage::serialize<hb_map_iter_t<hb_zip_iter_t<hb_sorted_array_t<OT::HBGlyphID16>, hb_array_t<OT::HBGlyphID16>>, const [unnamed type of 'hb_first'] &, (hb_function_sortedness_t)1, (void *)0>, (void *)0>(hb_serialize_context_t *, T1)() 113 TRACE_SERIALIZE (this); 114 if (unlikely (!c->extend_min (this))) return_trace (false); 115 116 unsigned count = 0; 117 unsigned num_ranges = 0; 118 hb_codepoint_t last = (hb_codepoint_t) -2; >>> CID 1513044: (AUTO_CAUSES_COPY) >>> Using the "auto" keyword without an "&" causes the copy of an object of >>> type HBGlyphID16. 119 for (auto g: glyphs) 120 { 121 if (last + 1 != g) 122 num_ranges++; 123 last = g; 124 count++; ** CID 1513041: (USE_AFTER_FREE) /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<AAT::trak>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cff2>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::cff2>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::OpenTypeFontFile>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::OS2>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::hhea>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cff2>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::maxp>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::cmap>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::MATH>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::cff1>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::BASE>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::hhea>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::hmtxvmtx<OT::vmtx, OT::vhea, OT::VVAR>>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::name>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::hmtxvmtx<OT::hmtx, OT::hhea, OT::HVAR>>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::post>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::kern>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::loca>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::GDEF>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::kerx>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::OpenTypeFontFile>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cmap>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::GDEF>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<AAT::morx>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::kern>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::STAT>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::hmtxvmtx<OT::hmtx, OT::hhea, OT::HVAR>>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::OpenTypeFontFile>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::cff2>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::BASE>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<AAT::ltag>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::maxp>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::vhea>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::name>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<AAT::trak>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::name>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cmap>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::hmtxvmtx<OT::vmtx, OT::vhea, OT::VVAR>>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::HVAR>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::kern>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::post>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::GDEF>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::vhea>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::MATH>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::trak>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::vhea>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::ltag>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::BASE>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::kerx>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::post>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::loca>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::HVAR>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::cmap>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::hhea>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::Layout::GPOS>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::post>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::OpenTypeFontFile>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::glyf>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::BASE>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::vhea>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::STAT>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::ltag>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::trak>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::kern>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::MATH>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<AAT::ankr>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cff1>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::glyf>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<AAT::ltag>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::STAT>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::cff1>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::OS2>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::OS2>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cff1>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::Layout::GSUB>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::maxp>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::OS2>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::HVAR>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::maxp>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::MATH>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::GDEF>(hb_blob_t *)() /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::name>(hb_blob_t *)() ________________________________________________________________________________________________________ *** CID 1513041: (USE_AFTER_FREE) /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<AAT::trak>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cff2>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::cff2>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::OpenTypeFontFile>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::OS2>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::hhea>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cff2>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::maxp>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::cmap>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::MATH>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::cff1>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::BASE>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::hhea>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::hmtxvmtx<OT::vmtx, OT::vhea, OT::VVAR>>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::name>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::hmtxvmtx<OT::hmtx, OT::hhea, OT::HVAR>>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::post>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::kern>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::loca>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::GDEF>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::kerx>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::OpenTypeFontFile>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cmap>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::GDEF>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<AAT::morx>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::kern>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::STAT>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::hmtxvmtx<OT::hmtx, OT::hhea, OT::HVAR>>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::OpenTypeFontFile>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::cff2>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::BASE>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<AAT::ltag>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::maxp>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::vhea>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::name>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<AAT::trak>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::name>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cmap>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::hmtxvmtx<OT::vmtx, OT::vhea, OT::VVAR>>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::HVAR>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::kern>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::post>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::GDEF>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::vhea>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::MATH>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::trak>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::vhea>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::ltag>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::BASE>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::kerx>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::post>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::loca>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::HVAR>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::cmap>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::hhea>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::Layout::GPOS>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::post>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::OpenTypeFontFile>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::glyf>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::BASE>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::vhea>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::STAT>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::ltag>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<AAT::trak>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::kern>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::MATH>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<AAT::ankr>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cff1>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::glyf>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<AAT::ltag>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::STAT>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::cff1>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::OS2>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::OS2>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::cff1>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 346 in hb_sanitize_context_t::sanitize_blob<OT::Layout::GSUB>(hb_blob_t *)() 340 341 start_processing (); 342 343 if (unlikely (!start)) 344 { 345 end_processing (); >>> CID 1513041: (USE_AFTER_FREE) >>> Using freed pointer "blob". 346 return blob; 347 } 348 349 Type *t = reinterpret_cast<Type *> (const_cast<char *> (start)); 350 351 sane = t->sanitize (this); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::maxp>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::OS2>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::HVAR>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::maxp>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Calling "hb_blob_destroy" frees pointer "blob" which has already been >>> freed. 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::MATH>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 393 in hb_sanitize_context_t::sanitize_blob<OT::GDEF>(hb_blob_t *)() 387 { 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_destroy". 393 hb_blob_destroy (blob); 394 return hb_blob_get_empty (); 395 } 396 } 397 398 template <typename Type> /workdir/UnpackedTarball/harfbuzz/src/hb-sanitize.hh: 388 in hb_sanitize_context_t::sanitize_blob<OT::name>(hb_blob_t *)() 382 383 end_processing (); 384 385 DEBUG_MSG_FUNC (SANITIZE, start, sane ? "PASSED" : "FAILED"); 386 if (sane) 387 { >>> CID 1513041: (USE_AFTER_FREE) >>> Passing freed pointer "blob" as an argument to "hb_blob_make_immutable". 388 hb_blob_make_immutable (blob); 389 return blob; 390 } 391 else 392 { 393 hb_blob_destroy (blob); ________________________________________________________________________________________________________ To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50ypSs1kiFPuCn2xFdlMIFBirii0zZ9j2-2F9F2XPBcBm2BNgi9duPy3v-2FzgFDd2LJ-2BDKI-3Dl9r3_OTq2XUZbbipYjyLSo6GRo-2FpVxQ9OzkDINu9UTS-2FQhSdO0F0jQniitrGlNxDIzPJifoBxogASetu34-2BU0UHBVuUSIk4QSdpefpBaleEzFI7TeAeIcuk00dcKJJ-2BJDCzzDJyfYcBE9oMN-2BVnq7hnnwp10QaHtoY9IbhD2Xrv16uQd9tXr93Oy-2Fp2AyT6bGGM-2BpupFwMeCWyDBjwMDrZbiDQVxRE6wMkWHQ2Bb4G3b3z4I-3D