New Defects reported by Coverity Scan for LibreOffice

Stephan Bergmann sbergman at redhat.com
Tue Mar 29 07:30:19 UTC 2016


Armin, can you take a look at the below two issues?  Code came in with 
your 
<https://cgit.freedesktop.org/cgit/?url=libreoffice/core/commit/&id=23391fdb5cffb62006415ad1f4c96b6ed5d50cf8> 
"tdf#98646 Fixed freeze by flattening loops".

On 03/24/2016 08:08 PM, scan-admin at coverity.com wrote:
> ** CID 1357165:    (DIVIDE_BY_ZERO)
> /sd/source/ui/view/drviewsh.cxx: 178 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> /sd/source/ui/view/drviewsh.cxx: 186 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> /sd/source/ui/view/drviewsh.cxx: 178 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> /sd/source/ui/view/drviewsh.cxx: 186 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
>
>
> ________________________________________________________________________________________________________
> *** CID 1357165:    (DIVIDE_BY_ZERO)
> /sd/source/ui/view/drviewsh.cxx: 178 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> 172                 else
> 173                 {
> 174                     const long distBottom(rRect.Bottom() - aNewPos.Y() + aVisAreaSize.Height());
> 175
> 176                     if(distBottom > 0)
> 177                     {
>>>>      CID 1357165:    (DIVIDE_BY_ZERO)
>>>>      In expression "distBottom / nFreeSpaceY", division by expression "nFreeSpaceY" which may be zero has undefined behavior.
> 178                         long mult = (distBottom / nFreeSpaceY) + 1;
> 179                         aNewPos.Y() += mult * nFreeSpaceY;
> 180                     }
> 181
> 182                     const long distTop(aNewPos.Y() - rRect.Top());
> 183
> /sd/source/ui/view/drviewsh.cxx: 186 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> 180                     }
> 181
> 182                     const long distTop(aNewPos.Y() - rRect.Top());
> 183
> 184                     if(distTop > 0)
> 185                     {
>>>>      CID 1357165:    (DIVIDE_BY_ZERO)
>>>>      In expression "distTop / nFreeSpaceY", division by expression "nFreeSpaceY" which may be zero has undefined behavior.
> 186                         long mult = (distTop / nFreeSpaceY) + 1;
> 187                         aNewPos.Y() -= mult * nFreeSpaceY;
> 188                     }
> 189                 }
> 190             }
> 191
> /sd/source/ui/view/drviewsh.cxx: 178 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> 172                 else
> 173                 {
> 174                     const long distBottom(rRect.Bottom() - aNewPos.Y() + aVisAreaSize.Height());
> 175
> 176                     if(distBottom > 0)
> 177                     {
>>>>      CID 1357165:    (DIVIDE_BY_ZERO)
>>>>      In expression "distBottom / nFreeSpaceY", division by expression "nFreeSpaceY" which may be zero has undefined behavior.
> 178                         long mult = (distBottom / nFreeSpaceY) + 1;
> 179                         aNewPos.Y() += mult * nFreeSpaceY;
> 180                     }
> 181
> 182                     const long distTop(aNewPos.Y() - rRect.Top());
> 183
> /sd/source/ui/view/drviewsh.cxx: 186 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> 180                     }
> 181
> 182                     const long distTop(aNewPos.Y() - rRect.Top());
> 183
> 184                     if(distTop > 0)
> 185                     {
>>>>      CID 1357165:    (DIVIDE_BY_ZERO)
>>>>      In expression "distTop / nFreeSpaceY", division by expression "nFreeSpaceY" which may be zero has undefined behavior.
> 186                         long mult = (distTop / nFreeSpaceY) + 1;
> 187                         aNewPos.Y() -= mult * nFreeSpaceY;
> 188                     }
> 189                 }
> 190             }
> 191
>
> ** CID 1357164:    (DIVIDE_BY_ZERO)
> /sd/source/ui/view/drviewsh.cxx: 141 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> /sd/source/ui/view/drviewsh.cxx: 133 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> /sd/source/ui/view/drviewsh.cxx: 141 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> /sd/source/ui/view/drviewsh.cxx: 133 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
>
>
> ________________________________________________________________________________________________________
> *** CID 1357164:    (DIVIDE_BY_ZERO)
> /sd/source/ui/view/drviewsh.cxx: 141 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> 135                     }
> 136
> 137                     const long distLeft(aNewPos.X() - rRect.Left());
> 138
> 139                     if(distLeft > 0)
> 140                     {
>>>>      CID 1357164:    (DIVIDE_BY_ZERO)
>>>>      In expression "distLeft / nFreeSpaceX", division by expression "nFreeSpaceX" which may be zero has undefined behavior.
> 141                         long mult = (distLeft / nFreeSpaceX) + 1;
> 142                         aNewPos.X() -= mult * nFreeSpaceX;
> 143                     }
> 144                 }
> 145             }
> 146
> /sd/source/ui/view/drviewsh.cxx: 133 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> 127                 else
> 128                 {
> 129                     const long distRight(rRect.Right() - aNewPos.X() + aVisAreaSize.Width());
> 130
> 131                     if(distRight > 0)
> 132                     {
>>>>      CID 1357164:    (DIVIDE_BY_ZERO)
>>>>      In expression "distRight / nFreeSpaceX", division by expression "nFreeSpaceX" which may be zero has undefined behavior.
> 133                         long mult = (distRight / nFreeSpaceX) + 1;
> 134                         aNewPos.X() += mult * nFreeSpaceX;
> 135                     }
> 136
> 137                     const long distLeft(aNewPos.X() - rRect.Left());
> 138
> /sd/source/ui/view/drviewsh.cxx: 141 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> 135                     }
> 136
> 137                     const long distLeft(aNewPos.X() - rRect.Left());
> 138
> 139                     if(distLeft > 0)
> 140                     {
>>>>      CID 1357164:    (DIVIDE_BY_ZERO)
>>>>      In expression "distLeft / nFreeSpaceX", division by expression "nFreeSpaceX" which may be zero has undefined behavior.
> 141                         long mult = (distLeft / nFreeSpaceX) + 1;
> 142                         aNewPos.X() -= mult * nFreeSpaceX;
> 143                     }
> 144                 }
> 145             }
> 146
> /sd/source/ui/view/drviewsh.cxx: 133 in sd::DrawViewShell::MakeVisible(const Rectangle &, vcl::Window &)()
> 127                 else
> 128                 {
> 129                     const long distRight(rRect.Right() - aNewPos.X() + aVisAreaSize.Width());
> 130
> 131                     if(distRight > 0)
> 132                     {
>>>>      CID 1357164:    (DIVIDE_BY_ZERO)
>>>>      In expression "distRight / nFreeSpaceX", division by expression "nFreeSpaceX" which may be zero has undefined behavior.
> 133                         long mult = (distRight / nFreeSpaceX) + 1;
> 134                         aNewPos.X() += mult * nFreeSpaceX;
> 135                     }
> 136
> 137                     const long distLeft(aNewPos.X() - rRect.Left());
> 138



More information about the LibreOffice mailing list