summaryrefslogtreecommitdiffstats
path: root/opensuse/tdelibs/r874968-ebay-crash.diff
blob: 44dfb6eb429aed2b95bf64f50601018a1fff4337 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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--;