File: Modules/ldapcontrol.c
Function: encode_rfc3876
Error: ob_refcnt of new ref from (unknown) LDAPerr is 1 too high
203 static PyObject*
204 encode_rfc3876(PyObject *self, PyObject *args)
205 {
206 	PyObject *res = 0;
207 	int err;
208 	BerElement *vrber = 0;
209 	char *vrFilter;
210 	struct berval *ctrl_val;
211 
212 	if (!PyArg_ParseTuple(args, "s:encode_valuesreturnfilter_control", &vrFilter)) {
when _PyArg_ParseTuple_SizeT() succeeds
taking False path
213 		goto endlbl;
214 	}
215 
216 	if (!(vrber = ber_alloc_t(LBER_USE_DER))) {
when treating unknown struct BerElement * from Modules/ldapcontrol.c:216 as non-NULL
taking False path
217 		LDAPerr(LDAP_NO_MEMORY);
218 		goto endlbl;
219 	}
220 
221 	err = ldap_put_vrFilter(vrber, vrFilter);
222 	if (err == -1) {
when considering range: -0x80000000 <= value <= -2
taking False path
223 		LDAPerr(LDAP_FILTER_ERROR);
224 		goto endlbl;
225 	}
226 
227 	err = ber_flatten(vrber, &ctrl_val);
228 	if (err == -1) {
when considering value == (int)-1 from Modules/ldapcontrol.c:227
taking True path
229 		LDAPerr(LDAP_NO_MEMORY);
when LDAPerr() succeeds
new ref from (unknown) LDAPerr allocated at: 		LDAPerr(LDAP_NO_MEMORY);
ob_refcnt is now refs: 1 + N where N >= 0
230 		goto endlbl;
231 	}
232 
233 	res = LDAPberval_to_object(ctrl_val);
234 
235 endlbl:
236 	if (vrber)
taking True path
237 		ber_free(vrber, 1);
238 
239 	return res;
returning
ob_refcnt of new ref from (unknown) LDAPerr is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1
found 3 similar trace(s) to this
240 }

File: Modules/ldapcontrol.c
Function: encode_rfc3876
Error: returning (PyObject*)NULL without setting an exception
203 static PyObject*
204 encode_rfc3876(PyObject *self, PyObject *args)
205 {
206 	PyObject *res = 0;
207 	int err;
208 	BerElement *vrber = 0;
209 	char *vrFilter;
210 	struct berval *ctrl_val;
211 
212 	if (!PyArg_ParseTuple(args, "s:encode_valuesreturnfilter_control", &vrFilter)) {
when _PyArg_ParseTuple_SizeT() succeeds
taking False path
213 		goto endlbl;
214 	}
215 
216 	if (!(vrber = ber_alloc_t(LBER_USE_DER))) {
when treating unknown struct BerElement * from Modules/ldapcontrol.c:216 as non-NULL
taking False path
217 		LDAPerr(LDAP_NO_MEMORY);
218 		goto endlbl;
219 	}
220 
221 	err = ldap_put_vrFilter(vrber, vrFilter);
222 	if (err == -1) {
when considering range: -0x80000000 <= value <= -2
taking False path
223 		LDAPerr(LDAP_FILTER_ERROR);
224 		goto endlbl;
225 	}
226 
227 	err = ber_flatten(vrber, &ctrl_val);
228 	if (err == -1) {
when considering value == (int)-1 from Modules/ldapcontrol.c:227
taking True path
229 		LDAPerr(LDAP_NO_MEMORY);
when LDAPerr() succeeds
230 		goto endlbl;
231 	}
232 
233 	res = LDAPberval_to_object(ctrl_val);
234 
235 endlbl:
236 	if (vrber)
taking True path
237 		ber_free(vrber, 1);
238 
239 	return res;
returning
returning (PyObject*)NULL without setting an exception
found 3 similar trace(s) to this
240 }