[SCM] Qt 4 packaging branch, master, updated. debian/4.8.6+git64-g5dc8b2b+dfsg-1-3-gd4e6eca

Adam Majer adamm at moszumanska.debian.org
Thu Sep 4 16:52:56 UTC 2014


Gitweb-URL: http://git.debian.org/?p=pkg-kde/qt/qt4-x11.git;a=commitdiff;h=d4e6eca

The following commit has been merged in the master branch:
commit d4e6ecaa4a221a981cdd9b0461549aa1f63a9409
Author: Adam Majer <adamm at zombino.com>
Date:   Thu Sep 4 11:51:28 2014 -0500

    Cherry-pick stack overflow fix from 5.4.x branch
    
        Author: Kamil Rojewski <kamil.rojewski at gmail.com>
        Date:   Wed Aug 13 10:38:38 2014 +0200
    
        fix for stack overflow
    
        Recursion in item mapping iterator caused a stack overflow for
        large datasets.
    
        Task-number: QTBUG-40153
        Change-Id: I693798de0ecfd3a920a3dd270172ce7ec3c13d8d
        Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki at digia.com>
---
 debian/patches/series                              |  1 +
 debian/patches/xmlpatterns_stack_overflow_fix.diff | 60 ++++++++++++++++++++++
 2 files changed, 61 insertions(+)

diff --git a/debian/patches/series b/debian/patches/series
index cbb6eae..78c11b7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,6 +2,7 @@
 Add_support_for_QT_USE_DRAG_DISTANCE_env_var.patch
 QTBUG-21900_Buttons_in_Qt_applications_not_clickable_when_run_under_gnome-shell.patch
 dont_crash_on_broken_gif_images.patch
+xmlpatterns_stack_overflow_fix.diff
 
 # Patches submitted upstream but still not accepted
 aarch64_arm64_fix_arch_detection.patch
diff --git a/debian/patches/xmlpatterns_stack_overflow_fix.diff b/debian/patches/xmlpatterns_stack_overflow_fix.diff
new file mode 100644
index 0000000..daf1ee7
--- /dev/null
+++ b/debian/patches/xmlpatterns_stack_overflow_fix.diff
@@ -0,0 +1,60 @@
+commit d1b17740ed4d9b1e3c3ad5898bb8259969dc77df
+Author: Kamil Rojewski <kamil.rojewski at gmail.com>
+Date:   Wed Aug 13 10:38:38 2014 +0200
+
+    fix for stack overflow
+    
+    Recursion in item mapping iterator caused a stack
+    overflow for large datasets.
+    
+    Task-number: QTBUG-40153
+    Change-Id: I693798de0ecfd3a920a3dd270172ce7ec3c13d8d
+    Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki at digia.com>
+
+Index: qt4-x11/src/xmlpatterns/iterators/qitemmappingiterator_p.h
+===================================================================
+--- qt4-x11.orig/src/xmlpatterns/iterators/qitemmappingiterator_p.h	2014-09-04 11:47:43.979391542 -0500
++++ qt4-x11/src/xmlpatterns/iterators/qitemmappingiterator_p.h	2014-09-04 11:47:43.975391542 -0500
+@@ -117,24 +117,28 @@
+          */
+         virtual TResult next()
+         {
+-            const TSource sourceItem(m_it->next());
+-
+-            if(qIsForwardIteratorEnd(sourceItem))
++            while (true)
+             {
+-                m_current = TResult();
+-                m_position = -1;
+-                return TResult();
+-            }
+-            else
+-            {
+-                m_current = m_mapper->mapToItem(sourceItem, m_context);
+-                if(qIsForwardIteratorEnd(m_current))
+-                    return next(); /* The mapper returned null, so continue with the next in the source. */
+-                else
++                const TSource &sourceItem = m_it->next();
++                if (qIsForwardIteratorEnd(sourceItem))
+                 {
+-                    ++m_position;
++                    m_current = TResult();
++                    m_position = -1;
+                     return m_current;
+                 }
++                else
++                {
++                    m_current = m_mapper->mapToItem(sourceItem, m_context);
++                    if (qIsForwardIteratorEnd(m_current))
++                    {
++                        continue; /* The mapper returned null, so continue with the next in the source. */
++                    }
++                    else
++                    {
++                        ++m_position;
++                        return m_current;
++                    }
++                }
+             }
+         }
+ 

-- 
Qt 4 packaging



More information about the pkg-kde-commits mailing list