summaryrefslogtreecommitdiff
path: root/libreofficekit
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-03-20 20:14:43 +0000
committerAndras Timar <andras.timar@collabora.com>2021-07-11 13:44:00 +0200
commit3a8303962ea1f15d9eb4ca2b863483c6bdfb1d44 (patch)
tree2fc409f87de175ad88aba226a2efb337bd28903d /libreofficekit
parent0e50d7d70cdd46afc5ad2ae3cc8ef6e394be05b0 (diff)
cid#1478187 Resource leak
Change-Id: Ib63d25e358f81c428fcbbb502650c37d016b6b44 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112821 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit da86cd492c5a04c42086985e17ae84d63bdedd0b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118617 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Diffstat (limited to 'libreofficekit')
-rw-r--r--libreofficekit/source/gtk/lokdocview.cxx14
1 files changed, 13 insertions, 1 deletions
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index c1fcc5542750..156224b57351 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -991,19 +991,28 @@ payloadToRectangle (LOKDocView* pDocView, const char* pPayload)
aRet.width = aRet.height = aRet.x = aRet.y = 0;
if (!*ppCoordinate)
+ {
+ g_strfreev(ppCoordinates);
return aRet;
+ }
aRet.x = atoi(*ppCoordinate);
if (aRet.x < 0)
aRet.x = 0;
++ppCoordinate;
if (!*ppCoordinate)
+ {
+ g_strfreev(ppCoordinates);
return aRet;
+ }
aRet.y = atoi(*ppCoordinate);
if (aRet.y < 0)
aRet.y = 0;
++ppCoordinate;
if (!*ppCoordinate)
+ {
+ g_strfreev(ppCoordinates);
return aRet;
+ }
long l = atol(*ppCoordinate);
if (l > std::numeric_limits<int>::max())
aRet.width = std::numeric_limits<int>::max();
@@ -1013,7 +1022,10 @@ payloadToRectangle (LOKDocView* pDocView, const char* pPayload)
aRet.width = priv->m_nDocumentWidthTwips - aRet.x;
++ppCoordinate;
if (!*ppCoordinate)
+ {
+ g_strfreev(ppCoordinates);
return aRet;
+ }
l = atol(*ppCoordinate);
if (l > std::numeric_limits<int>::max())
aRet.height = std::numeric_limits<int>::max();
@@ -1021,8 +1033,8 @@ payloadToRectangle (LOKDocView* pDocView, const char* pPayload)
aRet.height = l;
if (aRet.y + aRet.height > priv->m_nDocumentHeightTwips)
aRet.height = priv->m_nDocumentHeightTwips - aRet.y;
- g_strfreev(ppCoordinates);
+ g_strfreev(ppCoordinates);
return aRet;
}