<h5 dir="auto">System information (version)</h5>
<ul dir="auto">
<li>OpenCV =&gt; 3.4.1 (master seems to be same)</li>
<li>Operating System / Platform =&gt; cygwin 64 bit</li>
<li>Compiler =&gt; g++ (gcc 7.3.0)</li>
</ul>
<h5 dir="auto">Detailed description</h5>
<p dir="auto">In some (very rare) condition, "Error: Assertion failed" happens at:<br>
</p><div class="Box Box--condensed my-2">
  <div class="Box-header f6">
    <p class="mb-0 text-bold">
      <a href="https://github.com/opencv/opencv/blob/da7e1cfb495be131fe7d4668b163cd1cd75e7670/modules/core/src/types.cpp#L154">opencv/modules/core/src/types.cpp</a>
    </p>
    <p class="mb-0 color-fg-muted">
         Line 154
      in
      <a data-pjax="true" class="commit-tease-sha" href="/opencv/opencv/commit/da7e1cfb495be131fe7d4668b163cd1cd75e7670">da7e1cf</a>
    </p>
  </div>
  <div itemprop="text" class="Box-body p-0 blob-wrapper blob-wrapper-embedded data">
    <table class="highlight tab-size mb-0 js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">

        <tbody><tr class="border-0">
          <td id="L154" class="blob-num border-0 px-3 py-0 color-bg-default" data-line-number="154"></td>
          <td id="LC154" class="blob-code border-0 px-3 py-0 color-bg-default blob-code-inner js-file-line"> <span class="pl-c1">CV_Assert</span>( <span class="pl-c1">abs</span>(vecs[<span class="pl-c1">0</span>].<span class="pl-c1">dot</span>(vecs[<span class="pl-c1">1</span>])) / (<span class="pl-c1">norm</span>(vecs[<span class="pl-c1">0</span>]) * <span class="pl-c1">norm</span>(vecs[<span class="pl-c1">1</span>])) &lt;= FLT_EPSILON ); </td>
        </tr>
    </tbody></table>
  </div>
</div>
<br>
<code class="notranslate">CV_Assert(abs(vecs[0].dot(vecs[1])) / (cv::norm(vecs[0]) * cv::norm(vecs[1])) &lt;= FLT_EPSILON);</code><br>
because <code class="notranslate">FLT_EPSILON</code> is too small to compare.<p></p>
<h5 dir="auto">Steps to reproduce</h5>
<p dir="auto">I made a reproducible example:<br>
<a href="https://github.com/takotakot/opencv_debug/tree/0a5d37dc2cc4aef22a33012bdcbb54597ae852a1">https://github.com/takotakot/opencv_debug/tree/0a5d37dc2cc4aef22a33012bdcbb54597ae852a1</a><br>
.<br>
If we have <code class="notranslate">Point2d</code> rectangle, using <code class="notranslate">RotatedRect_2d</code> can eliminate the problem.</p>
<p dir="auto">Part of the code:</p>
<div class="highlight highlight-source-c++ notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="    cv::Mat points = (cv::Mat_&lt;double&gt;(10, 2) &lt;&lt;
                    1357., 1337.,
                    1362., 1407.,
                    1367., 1474.,
                    1372., 1543.,
                    1375., 1625.,
                    1375., 1696.,
                    1377., 1734.,
                    1378., 1742.,
                    1382., 1801.,
                    1372., 1990.);

    cv::PCA pca_points(points, cv::Mat(), CV_PCA_DATA_AS_ROW, 2);

    cv::Point2d p1(564.45, 339.8819), p2, p3;
    p2 = p1 - 1999 * cv::Point2d(pca_points.eigenvectors.row(0));
    p3 = p2 - 1498.5295 * cv::Point2d(pca_points.eigenvectors.row(1));

    cv::RotatedRect(p1, p2, p3);"><pre class="notranslate">    cv::Mat points = (cv::Mat_&lt;<span class="pl-k">double</span>&gt;(<span class="pl-c1">10</span>, <span class="pl-c1">2</span>) &lt;&lt;
                    <span class="pl-c1">1357</span>., <span class="pl-c1">1337</span>.,
                    <span class="pl-c1">1362</span>., <span class="pl-c1">1407</span>.,
                    <span class="pl-c1">1367</span>., <span class="pl-c1">1474</span>.,
                    <span class="pl-c1">1372</span>., <span class="pl-c1">1543</span>.,
                    <span class="pl-c1">1375</span>., <span class="pl-c1">1625</span>.,
                    <span class="pl-c1">1375</span>., <span class="pl-c1">1696</span>.,
                    <span class="pl-c1">1377</span>., <span class="pl-c1">1734</span>.,
                    <span class="pl-c1">1378</span>., <span class="pl-c1">1742</span>.,
                    <span class="pl-c1">1382</span>., <span class="pl-c1">1801</span>.,
                    <span class="pl-c1">1372</span>., <span class="pl-c1">1990</span>.);

    cv::PCA <span class="pl-en">pca_points</span>(points, cv::Mat(), CV_PCA_DATA_AS_ROW, 2);

    cv::Point2d <span class="pl-en">p1</span>(<span class="pl-c1">564.45</span>, <span class="pl-c1">339.8819</span>), p2, p3;
    p2 = p1 - <span class="pl-c1">1999</span> * <span class="pl-en">cv::Point2d</span>(pca_points.eigenvectors.row(<span class="pl-c1">0</span>));
    p3 = p2 - <span class="pl-c1">1498.5295</span> * <span class="pl-en">cv::Point2d</span>(pca_points.eigenvectors.row(<span class="pl-c1">1</span>));

    <span class="pl-en">cv::RotatedRect</span>(p1, p2, p3);</pre></div>
<h5 dir="auto">Plans</h5>
<p dir="auto">I have some plans:</p>
<ol dir="auto">
<li>Multiple 2, 4 or some value to FLT_EPSILON</li>
<li>Make another constructor using <code class="notranslate">Point2d</code> for <code class="notranslate">Point2f</code> (and <code class="notranslate">Vec2d</code> for <code class="notranslate">Vec2f</code> etc. inside)<br>
Note 1: If we use <code class="notranslate">DBL_EPSILON</code>, same problem may occur.<br>
Note 2: If we only have <code class="notranslate">Point2f</code> rectangle, we cannot avoid assertion.</li>
<li>Calcurate the angle between two vectors and introduce another assersion.</li>
</ol>
<p dir="auto">I want to create PR for solving this issue. But I want some direction.</p>
<h5 dir="auto">System information (version)</h5>

<ul dir="auto">
<li>OpenCV =&gt; 4.1.0</li>
<li>Operating System / Platform =&gt; Ubuntu 18.04 LTS</li>
<li>Compiler =&gt; clang-7</li>
</ul>
<h5 dir="auto">Detailed description</h5>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="An issue was discovered in opencv 4.1.0, there is an out of bounds read in function cv::predictOrdered&lt;cv::HaarEvaluator&gt; in cascadedetect.hpp, which leads to denial of service."><pre class="notranslate"><code class="notranslate">An issue was discovered in opencv 4.1.0, there is an out of bounds read in function cv::predictOrdered&lt;cv::HaarEvaluator&gt; in cascadedetect.hpp, which leads to denial of service.
</code></pre></div>
<p dir="auto">source</p>
<div class="highlight highlight-source-c notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content=" 511                 double val = featureEvaluator(node.featureIdx);
 512                 idx = val &lt; node.threshold ? node.left : node.right;
 513             }
 514             while( idx &gt; 0 );
&gt; 515             sum += \*bug=&gt;*\  cascadeLeaves[leafOfs - idx];
 516             nodeOfs += weak.nodeCount;
 517             leafOfs += weak.nodeCount + 1;
 518         }
 519         if( sum &lt; stage.threshold )
 520             return -si;"><pre class="notranslate"> <span class="pl-c1">511</span>                 <span class="pl-smi">double</span> <span class="pl-s1">val</span> <span class="pl-c1">=</span> <span class="pl-en">featureEvaluator</span>(<span class="pl-s1">node</span>.<span class="pl-c1">featureIdx</span>);
 <span class="pl-c1">512</span>                 <span class="pl-s1">idx</span> <span class="pl-c1">=</span> <span class="pl-s1">val</span> <span class="pl-c1">&lt;</span> <span class="pl-s1">node</span>.<span class="pl-c1">threshold</span> ? <span class="pl-s1">node</span>.<span class="pl-c1">left</span> : <span class="pl-s1">node</span>.<span class="pl-c1">right</span>;
 <span class="pl-c1">513</span>             }
 <span class="pl-c1">514</span>             <span class="pl-k">while</span>( <span class="pl-s1">idx</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">0</span> );
<span class="pl-c1">&gt;</span> <span class="pl-c1">515</span>             <span class="pl-s1">sum</span> <span class="pl-c1">+=</span> \*<span class="pl-s1">bug</span><span class="pl-c1">=</span><span class="pl-c1">&gt;</span><span class="pl-c1">*</span>\  <span class="pl-s1">cascadeLeaves</span>[<span class="pl-s1">leafOfs</span> <span class="pl-c1">-</span> <span class="pl-s1">idx</span>];
 <span class="pl-c1">516</span>             <span class="pl-s1">nodeOfs</span> <span class="pl-c1">+=</span> <span class="pl-s1">weak</span>.<span class="pl-c1">nodeCount</span>;
 <span class="pl-c1">517</span>             <span class="pl-s1">leafOfs</span> <span class="pl-c1">+=</span> <span class="pl-s1">weak</span>.<span class="pl-c1">nodeCount</span> <span class="pl-c1">+</span> <span class="pl-c1">1</span>;
 <span class="pl-c1">518</span>         }
 <span class="pl-c1">519</span>         <span class="pl-k">if</span>( <span class="pl-s1">sum</span> <span class="pl-c1">&lt;</span> <span class="pl-s1">stage</span>.<span class="pl-c1">threshold</span> )
 <span class="pl-c1">520</span>             <span class="pl-k">return</span> <span class="pl-c1">-</span><span class="pl-s1">si</span>;</pre></div>
<p dir="auto">debug</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In file: /home/pwd/SofterWare/opencv-4.1.0/modules/objdetect/src/cascadedetect.hpp
   510                 CascadeClassifierImpl::Data::DTreeNode&amp; node = cascadeNodes[root + idx];
   511                 double val = featureEvaluator(node.featureIdx);
   512                 idx = val &lt; node.threshold ? node.left : node.right;
   513             }
   514             while( idx &gt; 0 );
 ► 515             sum += cascadeLeaves[leafOfs - idx];
   516             nodeOfs += weak.nodeCount;
   517             leafOfs += weak.nodeCount + 1;
   518         }
   519         if( sum &lt; stage.threshold )
   520             return -si;
─────────────────────────────────────────────────────────────────────────────────────────────────────[ STACK ]─────────────────────────────────────────────────────────────────────────────────────────────────────
00:0000│ rsp  0x7fffc7ffe300 ◂— 0x8d80169006580d8
01:0008│      0x7fffc7ffe308 ◂— 0xbba5787f80000000
02:0010│      0x7fffc7ffe310 —▸ 0x7fffd53a5de0 ◂— 0xb1088000af4cb
03:0018│      0x7fffc7ffe318 ◂— 0xffedb5a100000003
04:0020│      0x7fffc7ffe320 ◂— 0xbf74af0fe0000000
05:0028│      0x7fffc7ffe328 —▸ 0x6b7b70 ◂— 0x0
06:0030│      0x7fffc7ffe330 ◂— 0x800000000000005d /* ']' */
07:0038│      0x7fffc7ffe338 —▸ 0x66f4a4 ◂— 0x100000000
───────────────────────────────────────────────────────────────────────────────────────────────────[ BACKTRACE ]───────────────────────────────────────────────────────────────────────────────────────────────────
 ► f 0     7ffff5e2c500
   f 1     7ffff5e2bb21
   f 2     7ffff5e3bd74
   f 3     7fffef87dc59
   f 4     7fffef87ea3b cv::ParallelJob::execute(bool)+603
   f 5     7fffef87e21a cv::WorkerThread::thread_body()+890
   f 6     7fffef880e05 cv::WorkerThread::thread_loop_wrapper(void*)+21
   f 7     7fffee3d46db start_thread+219
Program received signal SIGSEGV (fault address 0xfffffffe006630f8)
pwndbg&gt; p cascadeLeaves 
$1 = (float *) 0x662e10
pwndbg&gt; p leafOfs 
$2 = 186
pwndbg&gt; p idx
$3 = -2147483648"><pre class="notranslate"><code class="notranslate">In file: /home/pwd/SofterWare/opencv-4.1.0/modules/objdetect/src/cascadedetect.hpp
   510                 CascadeClassifierImpl::Data::DTreeNode&amp; node = cascadeNodes[root + idx];
   511                 double val = featureEvaluator(node.featureIdx);
   512                 idx = val &lt; node.threshold ? node.left : node.right;
   513             }
   514             while( idx &gt; 0 );
 ► 515             sum += cascadeLeaves[leafOfs - idx];
   516             nodeOfs += weak.nodeCount;
   517             leafOfs += weak.nodeCount + 1;
   518         }
   519         if( sum &lt; stage.threshold )
   520             return -si;
─────────────────────────────────────────────────────────────────────────────────────────────────────[ STACK ]─────────────────────────────────────────────────────────────────────────────────────────────────────
00:0000│ rsp  0x7fffc7ffe300 ◂— 0x8d80169006580d8
01:0008│      0x7fffc7ffe308 ◂— 0xbba5787f80000000
02:0010│      0x7fffc7ffe310 —▸ 0x7fffd53a5de0 ◂— 0xb1088000af4cb
03:0018│      0x7fffc7ffe318 ◂— 0xffedb5a100000003
04:0020│      0x7fffc7ffe320 ◂— 0xbf74af0fe0000000
05:0028│      0x7fffc7ffe328 —▸ 0x6b7b70 ◂— 0x0
06:0030│      0x7fffc7ffe330 ◂— 0x800000000000005d /* ']' */
07:0038│      0x7fffc7ffe338 —▸ 0x66f4a4 ◂— 0x100000000
───────────────────────────────────────────────────────────────────────────────────────────────────[ BACKTRACE ]───────────────────────────────────────────────────────────────────────────────────────────────────
 ► f 0     7ffff5e2c500
   f 1     7ffff5e2bb21
   f 2     7ffff5e3bd74
   f 3     7fffef87dc59
   f 4     7fffef87ea3b cv::ParallelJob::execute(bool)+603
   f 5     7fffef87e21a cv::WorkerThread::thread_body()+890
   f 6     7fffef880e05 cv::WorkerThread::thread_loop_wrapper(void*)+21
   f 7     7fffee3d46db start_thread+219
Program received signal SIGSEGV (fault address 0xfffffffe006630f8)
pwndbg&gt; p cascadeLeaves 
$1 = (float *) 0x662e10
pwndbg&gt; p leafOfs 
$2 = 186
pwndbg&gt; p idx
$3 = -2147483648
</code></pre></div>
<p dir="auto">bug report</p>
<div class="highlight highlight-text-adblock notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="AddressSanitizer:DEADLYSIGNAL
=================================================================
==9176==ERROR: AddressSanitizer: SEGV on unknown address 0x623e000443e8 (pc 0x7fc9fc661bfa bp 0x7fc9daee70b0 sp 0x7fc9daee6f80 T1)
==9176==The signal is caused by a READ memory access.
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
    #0 0x7fc9fc661bf9 in int cv::predictOrdered&lt;cv::HaarEvaluator&gt;(cv::CascadeClassifierImpl&amp;, cv::Ptr&lt;cv::FeatureEvaluator&gt;&amp;, double&amp;) /src/opencv/modules/objdetect/src/cascadedetect.hpp:515:17
    #1 0x7fc9fc65f736 in cv::CascadeClassifierImpl::runAt(cv::Ptr&lt;cv::FeatureEvaluator&gt;&amp;, cv::Point_&lt;int&gt;, int, double&amp;) /src/opencv/modules/objdetect/src/cascadedetect.cpp:962:20
    #2 0x7fc9fc692083 in cv::CascadeClassifierInvoker::operator()(cv::Range const&amp;) const /src/opencv/modules/objdetect/src/cascadedetect.cpp:1029:46
    #3 0x7fc9f294b0c3 in (anonymous namespace)::ParallelLoopBodyWrapper::operator()(cv::Range const&amp;) const /src/opencv/modules/core/src/parallel.cpp:343:17
    #4 0x7fc9f2d737e7 in cv::ParallelJob::execute(bool) /src/opencv/modules/core/src/parallel_impl.cpp:315:22
    #5 0x7fc9f2d7125b in cv::WorkerThread::thread_body() /src/opencv/modules/core/src/parallel_impl.cpp:415:24
    #6 0x7fc9f2d7f719 in cv::WorkerThread::thread_loop_wrapper(void*) /src/opencv/modules/core/src/parallel_impl.cpp:265:41
    #7 0x7fc9f15e46b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)
    #8 0x7fc9f0cf841c in clone (/lib/x86_64-linux-gnu/libc.so.6+0x10741c)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /src/opencv/modules/objdetect/src/cascadedetect.hpp:515:17 in int cv::predictOrdered&lt;cv::HaarEvaluator&gt;(cv::CascadeClassifierImpl&amp;, cv::Ptr&lt;cv::FeatureEvaluator&gt;&amp;, double&amp;)
Thread T1 created by T0 here:
    #0 0x43428d in __interceptor_pthread_create /work/llvm/projects/compiler-rt/lib/asan/asan_interceptors.cc:204
    #1 0x7fc9f2d79d58 in cv::WorkerThread::WorkerThread(cv::ThreadPool&amp;, unsigned int) /src/opencv/modules/core/src/parallel_impl.cpp:227:15
    #2 0x7fc9f2d76240 in cv::ThreadPool::reconfigure_(unsigned int) /src/opencv/modules/core/src/parallel_impl.cpp:510:53
    #3 0x7fc9f2d7bb07 in cv::ThreadPool::run(cv::Range const&amp;, cv::ParallelLoopBody const&amp;, double) /src/opencv/modules/core/src/parallel_impl.cpp:548:9
    #4 0x7fc9f2949a99 in parallel_for_impl(cv::Range const&amp;, cv::ParallelLoopBody const&amp;, double) /src/opencv/modules/core/src/parallel.cpp:590:9
    #5 0x7fc9f2949a99 in cv::parallel_for_(cv::Range const&amp;, cv::ParallelLoopBody const&amp;, double) /src/opencv/modules/core/src/parallel.cpp:518
    #6 0x7fc9fc673269 in cv::CascadeClassifierImpl::detectMultiScaleNoGrouping(cv::_InputArray const&amp;, std::vector&lt;cv::Rect_&lt;int&gt;, std::allocator&lt;cv::Rect_&lt;int&gt; &gt; &gt;&amp;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;, std::vector&lt;double, std::allocator&lt;double&gt; &gt;&amp;, double, cv::Size_&lt;int&gt;, cv::Size_&lt;int&gt;, bool) /src/opencv/modules/objdetect/src/cascadedetect.cpp:1346:9
    #7 0x7fc9fc677cb8 in cv::CascadeClassifierImpl::detectMultiScale(cv::_InputArray const&amp;, std::vector&lt;cv::Rect_&lt;int&gt;, std::allocator&lt;cv::Rect_&lt;int&gt; &gt; &gt;&amp;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;, std::vector&lt;double, std::allocator&lt;double&gt; &gt;&amp;, double, int, int, cv::Size_&lt;int&gt;, cv::Size_&lt;int&gt;, bool) /src/opencv/modules/objdetect/src/cascadedetect.cpp:1365:5
    #8 0x7fc9fc6786ee in cv::CascadeClassifierImpl::detectMultiScale(cv::_InputArray const&amp;, std::vector&lt;cv::Rect_&lt;int&gt;, std::allocator&lt;cv::Rect_&lt;int&gt; &gt; &gt;&amp;, double, int, int, cv::Size_&lt;int&gt;, cv::Size_&lt;int&gt;) /src/opencv/modules/objdetect/src/cascadedetect.cpp:1386:5
    #9 0x7fc9fc686370 in cv::CascadeClassifier::detectMultiScale(cv::_InputArray const&amp;, std::vector&lt;cv::Rect_&lt;int&gt;, std::allocator&lt;cv::Rect_&lt;int&gt; &gt; &gt;&amp;, double, int, int, cv::Size_&lt;int&gt;, cv::Size_&lt;int&gt;) /src/opencv/modules/objdetect/src/cascadedetect.cpp:1659:9
    #10 0x51d4bc in main /work/funcs/classifier.cc:34:24
    #11 0x7fc9f0c1182f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)

==9176==ABORTING
"><pre class="notranslate">AddressSanitizer:DEADLYSIGNAL
=================================================================
==9176==ERROR: AddressSanitizer: SEGV on unknown address 0x623e000443e8 (pc 0x7fc9fc661bfa bp 0x7fc9daee70b0 sp 0x7fc9daee6f80 T1)
==9176==The signal is caused by a READ memory access.
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
AddressSanitizer:DEADLYSIGNAL
    #0 0x7fc9fc661bf9 in int cv::predictOrdered&lt;cv::HaarEvaluator&gt;(cv::CascadeClassifierImpl&amp;, cv::Ptr&lt;cv::FeatureEvaluator&gt;&amp;, double&amp;) /src/opencv/modules/objdetect/src/cascadedetect.hpp:515:17
    #1 0x7fc9fc65f736 in cv::CascadeClassifierImpl::runAt(cv::Ptr&lt;cv::FeatureEvaluator&gt;&amp;, cv::Point_&lt;int&gt;, int, double&amp;) /src/opencv/modules/objdetect/src/cascadedetect.cpp:962:20
    #2 0x7fc9fc692083 in cv::CascadeClassifierInvoker::operator()(cv::Range const&amp;) const /src/opencv/modules/objdetect/src/cascadedetect.cpp:1029:46
    #3 0x7fc9f294b0c3 in (anonymous namespace)::ParallelLoopBodyWrapper::operator()(cv::Range const&amp;) const /src/opencv/modules/core/src/parallel.cpp:343:17
    #4 0x7fc9f2d737e7 in cv::ParallelJob::execute(bool) /src/opencv/modules/core/src/parallel_impl.cpp:315:22
    #5 0x7fc9f2d7125b in cv::WorkerThread::thread_body() /src/opencv/modules/core/src/parallel_impl.cpp:415:24
    #6 0x7fc9f2d7f719 in cv::WorkerThread::thread_loop_wrapper(void<span class="pl-k">*</span>) /src/opencv/modules/core/src/parallel_impl.cpp:265:41
    #7 0x7fc9f15e46b9 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76b9)
    #8 0x7fc9f0cf841c in clone (/lib/x86_64-linux-gnu/libc.so.6+0x10741c)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /src/opencv/modules/objdetect/src/cascadedetect.hpp:515:17 in int cv::predictOrdered&lt;cv::HaarEvaluator&gt;(cv::CascadeClassifierImpl&amp;, cv::Ptr&lt;cv::FeatureEvaluator&gt;&amp;, double&amp;)
Thread T1 created by T0 here:
    #0 0x43428d in __interceptor_pthread_create /work/llvm/projects/compiler-rt/lib/asan/asan_interceptors.cc:204
    #1 0x7fc9f2d79d58 in cv::WorkerThread::WorkerThread(cv::ThreadPool&amp;, unsigned int) /src/opencv/modules/core/src/parallel_impl.cpp:227:15
    #2 0x7fc9f2d76240 in cv::ThreadPool::reconfigure_(unsigned int) /src/opencv/modules/core/src/parallel_impl.cpp:510:53
    #3 0x7fc9f2d7bb07 in cv::ThreadPool::run(cv::Range const&amp;, cv::ParallelLoopBody const&amp;, double) /src/opencv/modules/core/src/parallel_impl.cpp:548:9
    #4 0x7fc9f2949a99 in parallel_for_impl(cv::Range const&amp;, cv::ParallelLoopBody const&amp;, double) /src/opencv/modules/core/src/parallel.cpp:590:9
    #5 0x7fc9f2949a99 in cv::parallel_for_(cv::Range const&amp;, cv::ParallelLoopBody const&amp;, double) /src/opencv/modules/core/src/parallel.cpp:518
    #6 0x7fc9fc673269 in cv::CascadeClassifierImpl::detectMultiScaleNoGrouping(cv::_InputArray const&amp;, std::vector&lt;cv::Rect_&lt;int&gt;, std::allocator&lt;cv::Rect_&lt;int&gt; &gt; &gt;&amp;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;, std::vector&lt;double, std::allocator&lt;double&gt; &gt;&amp;, double, cv::Size_&lt;int&gt;, cv::Size_&lt;int&gt;, bool) /src/opencv/modules/objdetect/src/cascadedetect.cpp:1346:9
    #7 0x7fc9fc677cb8 in cv::CascadeClassifierImpl::detectMultiScale(cv::_InputArray const&amp;, std::vector&lt;cv::Rect_&lt;int&gt;, std::allocator&lt;cv::Rect_&lt;int&gt; &gt; &gt;&amp;, std::vector&lt;int, std::allocator&lt;int&gt; &gt;&amp;, std::vector&lt;double, std::allocator&lt;double&gt; &gt;&amp;, double, int, int, cv::Size_&lt;int&gt;, cv::Size_&lt;int&gt;, bool) /src/opencv/modules/objdetect/src/cascadedetect.cpp:1365:5
    #8 0x7fc9fc6786ee in cv::CascadeClassifierImpl::detectMultiScale(cv::_InputArray const&amp;, std::vector&lt;cv::Rect_&lt;int&gt;, std::allocator&lt;cv::Rect_&lt;int&gt; &gt; &gt;&amp;, double, int, int, cv::Size_&lt;int&gt;, cv::Size_&lt;int&gt;) /src/opencv/modules/objdetect/src/cascadedetect.cpp:1386:5
    #9 0x7fc9fc686370 in cv::CascadeClassifier::detectMultiScale(cv::_InputArray const&amp;, std::vector&lt;cv::Rect_&lt;int&gt;, std::allocator&lt;cv::Rect_&lt;int&gt; &gt; &gt;&amp;, double, int, int, cv::Size_&lt;int&gt;, cv::Size_&lt;int&gt;) /src/opencv/modules/objdetect/src/cascadedetect.cpp:1659:9
    #10 0x51d4bc in main /work/funcs/classifier.cc:34:24
    #11 0x7fc9f0c1182f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)

==9176==ABORTING
</pre></div>
<p dir="auto">others</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="from fuzz project pwd-opencv-classifier-00
crash name pwd-opencv-classifier-00-00000253-20190703.xml
Auto-generated by pyspider at 2019-07-03 07:57:31

please send email to  teamseri0us360@gmail.com if you have any questions."><pre class="notranslate"><code class="notranslate">from fuzz project pwd-opencv-classifier-00
crash name pwd-opencv-classifier-00-00000253-20190703.xml
Auto-generated by pyspider at 2019-07-03 07:57:31

please send email to  teamseri0us360@gmail.com if you have any questions.
</code></pre></div>
<h5 dir="auto">Steps to reproduce</h5>
<p dir="auto">commandline</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="classifier /work/funcs/appname.bmp @@"><pre class="notranslate"><code class="notranslate">classifier /work/funcs/appname.bmp @@
</code></pre></div>
<p dir="auto"><a href="https://github.com/opencv/opencv/files/3420073/poc2.tar.gz">poc2.tar.gz</a></p>