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
- New Defects reported by Coverity Scan for LibreOffice · scan-admin
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.