diff options
Diffstat (limited to 'opensuse/core/tdelibs/r874968-ebay-crash.diff')
-rw-r--r-- | opensuse/core/tdelibs/r874968-ebay-crash.diff | 24 |
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--; |