[sr-dev] git:master:dc0586bb: app_python: avoid releasing uninitialized gstate

Daniel-Constantin Mierla miconda at gmail.com
Thu Mar 22 06:01:14 CET 2018


Module: kamailio
Branch: master
Commit: dc0586bbf6743080f500800808593d6cc1007945
URL: https://github.com/kamailio/kamailio/commit/dc0586bbf6743080f500800808593d6cc1007945

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date: 2018-03-22T04:46:54+01:00

app_python: avoid releasing uninitialized gstate

---

Modified: src/modules/app_python/python_exec.c

---

Diff:  https://github.com/kamailio/kamailio/commit/dc0586bbf6743080f500800808593d6cc1007945.diff
Patch: https://github.com/kamailio/kamailio/commit/dc0586bbf6743080f500800808593d6cc1007945.patch

---

diff --git a/src/modules/app_python/python_exec.c b/src/modules/app_python/python_exec.c
index f5f4d02532..9d3abf492a 100644
--- a/src/modules/app_python/python_exec.c
+++ b/src/modules/app_python/python_exec.c
@@ -69,6 +69,7 @@ int apy_exec(sip_msg_t *_msg, char *fname, char *fparam, int emode)
 	int mpid;
 	int locked = 0;
 	PyGILState_STATE gstate;
+	int gstate_init = 0;
 
 	bmsg = _sr_apy_env.msg;
 	_sr_apy_env.msg = _msg;
@@ -87,6 +88,7 @@ int apy_exec(sip_msg_t *_msg, char *fname, char *fparam, int emode)
 			}
 		}
 		PY_GIL_ENSURE;
+		gstate_init = 1;
 	}
 
 	pFunc = PyObject_GetAttrString(_sr_apy_handler_obj, fname);
@@ -164,7 +166,7 @@ int apy_exec(sip_msg_t *_msg, char *fname, char *fparam, int emode)
 	Py_DECREF(pResult);
 	_sr_apy_env.msg = bmsg;
  err:
-	PY_GIL_RELEASE;
+	if(gstate_init) { PY_GIL_RELEASE; }
 	LOCK_RELEASE;
 	return rval;
 }




More information about the sr-dev mailing list