Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index



Hi,

Please find the latest report on new defect(s) introduced to LibreOffice found with Coverity Scan.

5 new defect(s) introduced to LibreOffice found with Coverity Scan.
1 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by 
Coverity Scan.

New defect(s) Reported-by: Coverity Scan
Showing 5 of 5 defect(s)


** CID 1256663:  Same on both sides  (CONSTANT_EXPRESSION_RESULT)
/sw/inc/ring.hxx: 186 in sw::RingIterator<SwPaM>::equal(const sw::RingIterator<SwPaM>&) const()
/sw/inc/ring.hxx: 186 in sw::RingIterator<SwViewShell>::equal(const sw::RingIterator<SwViewShell>&) 
const()
/sw/inc/ring.hxx: 186 in sw::RingIterator<const SwPaM>::equal(const sw::RingIterator<const SwPaM>&) 
const()
/sw/inc/ring.hxx: 186 in sw::RingIterator<const SwViewShell>::equal(const sw::RingIterator<const 
SwViewShell>&) const()
/sw/inc/ring.hxx: 186 in sw::RingIterator<const <unnamed>::TestRing>::equal(const 
sw::RingIterator<const <unnamed>::TestRing>&) const()
/sw/inc/ring.hxx: 186 in sw::RingIterator<<unnamed>::TestRing>::equal(const 
sw::RingIterator<<unnamed>::TestRing>&) const()

** CID 1256665:  Division or modulo by float zero  (DIVIDE_BY_ZERO)
/vcl/opengl/program.cxx: 223 in OpenGLProgram::SetTransform(const rtl::OString &, const 
OpenGLTexture &, const basegfx::B2DPoint &, const basegfx::B2DPoint &, const basegfx::B2DPoint &)()
/vcl/opengl/program.cxx: 223 in OpenGLProgram::SetTransform(const rtl::OString &, const 
OpenGLTexture &, const basegfx::B2DPoint &, const basegfx::B2DPoint &, const basegfx::B2DPoint &)()

** CID 1256664:  Division or modulo by float zero  (DIVIDE_BY_ZERO)
/vcl/opengl/program.cxx: 223 in OpenGLProgram::SetTransform(const rtl::OString &, const 
OpenGLTexture &, const basegfx::B2DPoint &, const basegfx::B2DPoint &, const basegfx::B2DPoint &)()
/vcl/opengl/program.cxx: 223 in OpenGLProgram::SetTransform(const rtl::OString &, const 
OpenGLTexture &, const basegfx::B2DPoint &, const basegfx::B2DPoint &, const basegfx::B2DPoint &)()

** CID 1256669:  Uninitialized pointer field  (UNINIT_CTOR)
/sw/inc/ring.hxx: 62 in sw::Ring<SwViewShell>::Ring()()
/sw/inc/ring.hxx: 62 in sw::Ring<<unnamed>::TestRing>::Ring()()

** CID 1256668:  Uninitialized pointer field  (UNINIT_CTOR)
/sw/inc/ring.hxx: 112 in sw::Ring<SwPaM>::Ring(SwPaM *)()
/sw/inc/ring.hxx: 112 in sw::Ring<_SaveMergeRedlines>::Ring(_SaveMergeRedlines *)()
/sw/inc/ring.hxx: 112 in sw::Ring<SwViewShell>::Ring(SwViewShell *)()


________________________________________________________________________________________________________
*** CID 1256663:  Same on both sides  (CONSTANT_EXPRESSION_RESULT)
/sw/inc/ring.hxx: 186 in sw::RingIterator<SwPaM>::equal(const sw::RingIterator<SwPaM>&) const()
180                 }
181             private:
182                 friend class boost::iterator_core_access;
183                 void increment()
184                     { m_pCurrent = m_pCurrent ? m_pCurrent->GetNext() : m_pStart->GetNext(); }
185                 bool equal(RingIterator const& other) const
    CID 1256663:  Same on both sides  (CONSTANT_EXPRESSION_RESULT)
    "this->m_pStart == this->m_pStart" is always true regardless of the values of its operands 
because those operands are identical. This occurs as the logical second operand of '&&'.
186                     { return m_pCurrent == other.m_pCurrent && m_pStart == m_pStart; }
187                 T& dereference() const
188                     { return m_pCurrent ? *m_pCurrent : * m_pStart; }
189                 T* m_pCurrent;
190                 T* m_pStart;
191         };
/sw/inc/ring.hxx: 186 in sw::RingIterator<SwViewShell>::equal(const sw::RingIterator<SwViewShell>&) 
const()
180                 }
181             private:
182                 friend class boost::iterator_core_access;
183                 void increment()
184                     { m_pCurrent = m_pCurrent ? m_pCurrent->GetNext() : m_pStart->GetNext(); }
185                 bool equal(RingIterator const& other) const
    CID 1256663:  Same on both sides  (CONSTANT_EXPRESSION_RESULT)
    "this->m_pStart == this->m_pStart" is always true regardless of the values of its operands 
because those operands are identical. This occurs as the logical second operand of '&&'.
186                     { return m_pCurrent == other.m_pCurrent && m_pStart == m_pStart; }
187                 T& dereference() const
188                     { return m_pCurrent ? *m_pCurrent : * m_pStart; }
189                 T* m_pCurrent;
190                 T* m_pStart;
191         };
/sw/inc/ring.hxx: 186 in sw::RingIterator<const SwPaM>::equal(const sw::RingIterator<const SwPaM>&) 
const()
180                 }
181             private:
182                 friend class boost::iterator_core_access;
183                 void increment()
184                     { m_pCurrent = m_pCurrent ? m_pCurrent->GetNext() : m_pStart->GetNext(); }
185                 bool equal(RingIterator const& other) const
    CID 1256663:  Same on both sides  (CONSTANT_EXPRESSION_RESULT)
    "this->m_pStart == this->m_pStart" is always true regardless of the values of its operands 
because those operands are identical. This occurs as the logical second operand of '&&'.
186                     { return m_pCurrent == other.m_pCurrent && m_pStart == m_pStart; }
187                 T& dereference() const
188                     { return m_pCurrent ? *m_pCurrent : * m_pStart; }
189                 T* m_pCurrent;
190                 T* m_pStart;
191         };
/sw/inc/ring.hxx: 186 in sw::RingIterator<const SwViewShell>::equal(const sw::RingIterator<const 
SwViewShell>&) const()
180                 }
181             private:
182                 friend class boost::iterator_core_access;
183                 void increment()
184                     { m_pCurrent = m_pCurrent ? m_pCurrent->GetNext() : m_pStart->GetNext(); }
185                 bool equal(RingIterator const& other) const
    CID 1256663:  Same on both sides  (CONSTANT_EXPRESSION_RESULT)
    "this->m_pStart == this->m_pStart" is always true regardless of the values of its operands 
because those operands are identical. This occurs as the logical second operand of '&&'.
186                     { return m_pCurrent == other.m_pCurrent && m_pStart == m_pStart; }
187                 T& dereference() const
188                     { return m_pCurrent ? *m_pCurrent : * m_pStart; }
189                 T* m_pCurrent;
190                 T* m_pStart;
191         };
/sw/inc/ring.hxx: 186 in sw::RingIterator<const <unnamed>::TestRing>::equal(const 
sw::RingIterator<const <unnamed>::TestRing>&) const()
180                 }
181             private:
182                 friend class boost::iterator_core_access;
183                 void increment()
184                     { m_pCurrent = m_pCurrent ? m_pCurrent->GetNext() : m_pStart->GetNext(); }
185                 bool equal(RingIterator const& other) const
    CID 1256663:  Same on both sides  (CONSTANT_EXPRESSION_RESULT)
    "this->m_pStart == this->m_pStart" is always true regardless of the values of its operands 
because those operands are identical. This occurs as the logical second operand of '&&'.
186                     { return m_pCurrent == other.m_pCurrent && m_pStart == m_pStart; }
187                 T& dereference() const
188                     { return m_pCurrent ? *m_pCurrent : * m_pStart; }
189                 T* m_pCurrent;
190                 T* m_pStart;
191         };
/sw/inc/ring.hxx: 186 in sw::RingIterator<<unnamed>::TestRing>::equal(const 
sw::RingIterator<<unnamed>::TestRing>&) const()
180                 }
181             private:
182                 friend class boost::iterator_core_access;
183                 void increment()
184                     { m_pCurrent = m_pCurrent ? m_pCurrent->GetNext() : m_pStart->GetNext(); }
185                 bool equal(RingIterator const& other) const
    CID 1256663:  Same on both sides  (CONSTANT_EXPRESSION_RESULT)
    "this->m_pStart == this->m_pStart" is always true regardless of the values of its operands 
because those operands are identical. This occurs as the logical second operand of '&&'.
186                     { return m_pCurrent == other.m_pCurrent && m_pStart == m_pStart; }
187                 T& dereference() const
188                     { return m_pCurrent ? *m_pCurrent : * m_pStart; }
189                 T* m_pCurrent;
190                 T* m_pStart;
191         };

________________________________________________________________________________________________________
*** CID 1256665:  Division or modulo by float zero  (DIVIDE_BY_ZERO)
/vcl/opengl/program.cxx: 223 in OpenGLProgram::SetTransform(const rtl::OString &, const 
OpenGLTexture &, const basegfx::B2DPoint &, const basegfx::B2DPoint &, const basegfx::B2DPoint &)()
217         const basegfx::B2DPoint& rX,
218         const basegfx::B2DPoint& rY )
219     {
220         GLuint nUniform = GetUniformLocation( rName );
221         const basegfx::B2DVector aXRel = rX - rNull;
222         const basegfx::B2DVector aYRel = rY - rNull;
    CID 1256665:  Division or modulo by float zero  (DIVIDE_BY_ZERO)
    In expression "(float)aYRel.getY() / rTexture->GetHeight()", division by expression 
"rTexture->GetHeight()" which may be zero has undefined behavior.
223         const float aValues[] = {
224             (float) aXRel.getX()/rTexture.GetWidth(),  (float) 
aXRel.getY()/rTexture.GetWidth(),  0, 0,
225             (float) aYRel.getX()/rTexture.GetHeight(), (float) 
aYRel.getY()/rTexture.GetHeight(), 0, 0,
226             0,                                         0,                                       
  1, 0,
227             (float) rNull.getX(),                      (float) rNull.getY(),                    
  0, 1 };
228         glm::mat4 mMatrix = glm::make_mat4( aValues );
/vcl/opengl/program.cxx: 223 in OpenGLProgram::SetTransform(const rtl::OString &, const 
OpenGLTexture &, const basegfx::B2DPoint &, const basegfx::B2DPoint &, const basegfx::B2DPoint &)()
217         const basegfx::B2DPoint& rX,
218         const basegfx::B2DPoint& rY )
219     {
220         GLuint nUniform = GetUniformLocation( rName );
221         const basegfx::B2DVector aXRel = rX - rNull;
222         const basegfx::B2DVector aYRel = rY - rNull;
    CID 1256665:  Division or modulo by float zero  (DIVIDE_BY_ZERO)
    In expression "(float)aYRel.getX() / rTexture->GetHeight()", division by expression 
"rTexture->GetHeight()" which may be zero has undefined behavior.
223         const float aValues[] = {
224             (float) aXRel.getX()/rTexture.GetWidth(),  (float) 
aXRel.getY()/rTexture.GetWidth(),  0, 0,
225             (float) aYRel.getX()/rTexture.GetHeight(), (float) 
aYRel.getY()/rTexture.GetHeight(), 0, 0,
226             0,                                         0,                                       
  1, 0,
227             (float) rNull.getX(),                      (float) rNull.getY(),                    
  0, 1 };
228         glm::mat4 mMatrix = glm::make_mat4( aValues );

________________________________________________________________________________________________________
*** CID 1256664:  Division or modulo by float zero  (DIVIDE_BY_ZERO)
/vcl/opengl/program.cxx: 223 in OpenGLProgram::SetTransform(const rtl::OString &, const 
OpenGLTexture &, const basegfx::B2DPoint &, const basegfx::B2DPoint &, const basegfx::B2DPoint &)()
217         const basegfx::B2DPoint& rX,
218         const basegfx::B2DPoint& rY )
219     {
220         GLuint nUniform = GetUniformLocation( rName );
221         const basegfx::B2DVector aXRel = rX - rNull;
222         const basegfx::B2DVector aYRel = rY - rNull;
    CID 1256664:  Division or modulo by float zero  (DIVIDE_BY_ZERO)
    In expression "(float)aXRel.getY() / rTexture->GetWidth()", division by expression 
"rTexture->GetWidth()" which may be zero has undefined behavior.
223         const float aValues[] = {
224             (float) aXRel.getX()/rTexture.GetWidth(),  (float) 
aXRel.getY()/rTexture.GetWidth(),  0, 0,
225             (float) aYRel.getX()/rTexture.GetHeight(), (float) 
aYRel.getY()/rTexture.GetHeight(), 0, 0,
226             0,                                         0,                                       
  1, 0,
227             (float) rNull.getX(),                      (float) rNull.getY(),                    
  0, 1 };
228         glm::mat4 mMatrix = glm::make_mat4( aValues );
/vcl/opengl/program.cxx: 223 in OpenGLProgram::SetTransform(const rtl::OString &, const 
OpenGLTexture &, const basegfx::B2DPoint &, const basegfx::B2DPoint &, const basegfx::B2DPoint &)()
217         const basegfx::B2DPoint& rX,
218         const basegfx::B2DPoint& rY )
219     {
220         GLuint nUniform = GetUniformLocation( rName );
221         const basegfx::B2DVector aXRel = rX - rNull;
222         const basegfx::B2DVector aYRel = rY - rNull;
    CID 1256664:  Division or modulo by float zero  (DIVIDE_BY_ZERO)
    In expression "(float)aXRel.getX() / rTexture->GetWidth()", division by expression 
"rTexture->GetWidth()" which may be zero has undefined behavior.
223         const float aValues[] = {
224             (float) aXRel.getX()/rTexture.GetWidth(),  (float) 
aXRel.getY()/rTexture.GetWidth(),  0, 0,
225             (float) aYRel.getX()/rTexture.GetHeight(), (float) 
aYRel.getY()/rTexture.GetHeight(), 0, 0,
226             0,                                         0,                                       
  1, 0,
227             (float) rNull.getX(),                      (float) rNull.getY(),                    
  0, 1 };
228         glm::mat4 mMatrix = glm::make_mat4( aValues );

________________________________________________________________________________________________________
*** CID 1256669:  Uninitialized pointer field  (UNINIT_CTOR)
/sw/inc/ring.hxx: 62 in sw::Ring<SwViewShell>::Ring()()
56             /**
57              * Creates a new item in a ring container all by itself.
58              * Note: Ring instances can newer be outside a container. At most, they
59              * are alone in one.
60              */
61             Ring()
    CID 1256669:  Uninitialized pointer field  (UNINIT_CTOR)
    Non-static class member "pPrev" is not initialized in this constructor nor in any functions 
that it calls.
62                 { algo::init_header(static_cast< T* >(this)); }
63             /**
64              * Creates a new item and add it to an existing ring container.
65              * Note: the newly created item will be inserted just before item pRing.
66              * @param pRing ring container to add the created item to
67              */
/sw/inc/ring.hxx: 62 in sw::Ring<<unnamed>::TestRing>::Ring()()
56             /**
57              * Creates a new item in a ring container all by itself.
58              * Note: Ring instances can newer be outside a container. At most, they
59              * are alone in one.
60              */
61             Ring()
    CID 1256669:  Uninitialized pointer field  (UNINIT_CTOR)
    Non-static class member "pPrev" is not initialized in this constructor nor in any functions 
that it calls.
62                 { algo::init_header(static_cast< T* >(this)); }
63             /**
64              * Creates a new item and add it to an existing ring container.
65              * Note: the newly created item will be inserted just before item pRing.
66              * @param pRing ring container to add the created item to
67              */

________________________________________________________________________________________________________
*** CID 1256668:  Uninitialized pointer field  (UNINIT_CTOR)
/sw/inc/ring.hxx: 112 in sw::Ring<SwPaM>::Ring(SwPaM *)()
106         {
107             T* pThis = static_cast< T* >(this);
108             if( !pObj )
109                 algo::init_header(pThis);
110             else
111                 algo::link_before(pObj, pThis);
    CID 1256668:  Uninitialized pointer field  (UNINIT_CTOR)
    Non-static class member "pPrev" is not initialized in this constructor nor in any functions 
that it calls.
112         }
113     
114         template <class T>
115         inline void Ring<T>::MoveTo(T* pDestRing)
116         {
117             T* pThis = static_cast< T* >(this);
/sw/inc/ring.hxx: 112 in sw::Ring<_SaveMergeRedlines>::Ring(_SaveMergeRedlines *)()
106         {
107             T* pThis = static_cast< T* >(this);
108             if( !pObj )
109                 algo::init_header(pThis);
110             else
111                 algo::link_before(pObj, pThis);
    CID 1256668:  Uninitialized pointer field  (UNINIT_CTOR)
    Non-static class member "pPrev" is not initialized in this constructor nor in any functions 
that it calls.
112         }
113     
114         template <class T>
115         inline void Ring<T>::MoveTo(T* pDestRing)
116         {
117             T* pThis = static_cast< T* >(this);
/sw/inc/ring.hxx: 112 in sw::Ring<SwViewShell>::Ring(SwViewShell *)()
106         {
107             T* pThis = static_cast< T* >(this);
108             if( !pObj )
109                 algo::init_header(pThis);
110             else
111                 algo::link_before(pObj, pThis);
    CID 1256668:  Uninitialized pointer field  (UNINIT_CTOR)
    Non-static class member "pPrev" is not initialized in this constructor nor in any functions 
that it calls.
112         }
113     
114         template <class T>
115         inline void Ring<T>::MoveTo(T* pDestRing)
116         {
117             T* pThis = static_cast< T* >(this);


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, http://scan.coverity.com/projects/211?tab=overview

To manage Coverity Scan email notifications for "libreoffice@lists.freedesktop.org", click 
http://scan.coverity.com/subscriptions/edit?email=libreoffice%40lists.freedesktop.org&token=d6481d718a775246b2340f282ebe5939
 .


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.