You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kg...@apache.org on 2017/03/23 20:33:17 UTC
qpid-cpp git commit: QPID-7702: Fix some minor memory leaks detected
by Coverity scan
Repository: qpid-cpp
Updated Branches:
refs/heads/master f04bc169f -> f91a23c59
QPID-7702: Fix some minor memory leaks detected by Coverity scan
Use SWIG_fail instead of returning on error.
Avoid possible leaks during exception handling.
Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/f91a23c5
Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/f91a23c5
Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/f91a23c5
Branch: refs/heads/master
Commit: f91a23c59e18fcdc1560687e14813346468fec3d
Parents: f04bc16
Author: Kenneth Giusti <kg...@apache.org>
Authored: Mon Mar 13 15:07:25 2017 -0400
Committer: Kenneth Giusti <kg...@apache.org>
Committed: Thu Mar 23 15:53:47 2017 -0400
----------------------------------------------------------------------
bindings/qmf2/python/cqmf2.i | 10 +++++++---
bindings/qpid/python/qpid_messaging.i | 10 +++++++---
2 files changed, 14 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/f91a23c5/bindings/qmf2/python/cqmf2.i
----------------------------------------------------------------------
diff --git a/bindings/qmf2/python/cqmf2.i b/bindings/qmf2/python/cqmf2.i
index 6b5326f..b8d25b7 100644
--- a/bindings/qmf2/python/cqmf2.i
+++ b/bindings/qmf2/python/cqmf2.i
@@ -23,17 +23,21 @@
/* Define the general-purpose exception handling */
%exception {
+ bool failed = true;
std::string error;
Py_BEGIN_ALLOW_THREADS;
try {
$action
+ failed = false;
} catch (qpid::types::Exception& ex) {
error = ex.what();
}
Py_END_ALLOW_THREADS;
- if (!error.empty()) {
- PyErr_SetString(PyExc_RuntimeError, error.c_str());
- return NULL;
+ if (failed) {
+ if (!error.empty()) {
+ PyErr_SetString(PyExc_RuntimeError, error.c_str());
+ }
+ SWIG_fail;
}
}
http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/f91a23c5/bindings/qpid/python/qpid_messaging.i
----------------------------------------------------------------------
diff --git a/bindings/qpid/python/qpid_messaging.i b/bindings/qpid/python/qpid_messaging.i
index 688b7ea..aee9930 100644
--- a/bindings/qpid/python/qpid_messaging.i
+++ b/bindings/qpid/python/qpid_messaging.i
@@ -101,10 +101,12 @@ QPID_EXCEPTION(UnauthorizedAccess, SessionError)
/* Define the general-purpose exception handling */
%exception {
PyObject * pExceptionType = NULL;
+ bool failed = true;
std::string error;
Py_BEGIN_ALLOW_THREADS;
try {
$action
+ failed = false;
}
/* Catch and translate exceptions. */
TRANSLATE_EXCEPTION(qpid::messaging::NoMessageAvailable, Empty)
@@ -132,9 +134,11 @@ QPID_EXCEPTION(UnauthorizedAccess, SessionError)
TRANSLATE_EXCEPTION(qpid::messaging::MessagingException, MessagingError)
TRANSLATE_EXCEPTION(qpid::types::Exception, PyExc_RuntimeError)
Py_END_ALLOW_THREADS;
- if (!error.empty()) {
- PyErr_SetString(pExceptionType, error.c_str());
- return NULL;
+ if (failed) {
+ if (!error.empty()) {
+ PyErr_SetString(pExceptionType, error.c_str());
+ }
+ SWIG_fail;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org