summaryrefslogtreecommitdiffstats
path: root/opensuse/core/tdelibs/r874968-ebay-crash.diff
diff options
context:
space:
mode:
Diffstat (limited to 'opensuse/core/tdelibs/r874968-ebay-crash.diff')
-rw-r--r--opensuse/core/tdelibs/r874968-ebay-crash.diff24
1 files changed, 24 insertions, 0 deletions
diff --git a/opensuse/core/tdelibs/r874968-ebay-crash.diff b/opensuse/core/tdelibs/r874968-ebay-crash.diff
new file mode 100644
index 000000000..44dfb6eb4
--- /dev/null
+++ b/opensuse/core/tdelibs/r874968-ebay-crash.diff
@@ -0,0 +1,24 @@
+Index: khtml/rendering/table_layout.cpp
+===================================================================
+--- khtml/rendering/table_layout.cpp.orig
++++ khtml/rendering/table_layout.cpp
+@@ -297,7 +297,8 @@ void FixedTableLayout::layout()
+ #endif
+ for ( int i = 0; available > 0 && i < nEffCols; i++ ) {
+ if ( width[i].isPercent() ) {
+- int w = base * width[i].value() / totalPercent;
++ // totalPercent may be 0 below if all %-width specifed are 0%. (#172557)
++ int w = totalPercent ? base * width[i].value() / totalPercent : 0;
+ available -= w;
+ calcWidth[i] = w;
+ }
+@@ -313,7 +314,8 @@ void FixedTableLayout::layout()
+
+ for ( int i = 0; available > 0 && i < nEffCols; i++ ) {
+ if ( width[i].isVariable() ) {
+- int w = available / totalVariable;
++ // totalVariable may be 0 below if all the variable widths specified are 0.
++ int w = totalVariable ? available / totalVariable : 0;
+ available -= w;
+ calcWidth[i] = w;
+ totalVariable--;