File: arm4module.c
Function: generate_correlator
Error: ob_refcnt of '*correlator' is 1 too high
4478 static PyObject *
4479 generate_correlator (PyObject *self, PyObject *args, PyObject *keywds)
4480 {
4481     arm_error_t status;
4482 	ArmHandle *app_handle;
4483 	ArmID *tran_id;
4484 	ArmCorrelator *parent = NULL;
4485 	arm_correlator_t *parent_ptr = NULL;
4486 	ArmCorrelator *correlator = NULL;
4487 	arm_correlator_t *correlator_ptr = NULL;
4488 	ArmBuffer *buffer = NULL;
4489 	arm_buffer4_t *buffer_ptr = NULL;
4490 	int flags = ARM_FLAG_NONE;
4491 
4492 	/*
4493 	 * Supported calling signatures:
4494 	 *	generate_correlator (app_handle, tran_id, parent=, flags=, buffers=)
4495 	 */
4496 
4497 	static char *kwlist[] = {"app_handle", "tran_id", "parent", "flags", "buffer", NULL};
4498 
4499 	if (!PyArg_ParseTupleAndKeywords(args, keywds, "OO|OiO:generate_correlator", kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
4500 				&app_handle, &tran_id, &parent, &flags, &buffer))
4501         return NULL;
4502 	if (!ArmHandle_Object_Check(app_handle))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4503 		return NULL;
4504 	if (!ArmID_Object_Check(tran_id))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4505 		return NULL;
4506 	if (buffer && ArmBuffer_Object_Check(buffer))
taking True path
when taking True path
4507 	{
4508 		prepare (buffer);
4509 		buffer_ptr = &(buffer->arm_buffer);
4510 	}
4511 
4512 	/* Set up our optional parameters */
4513 	if (parent && ArmCorrelator_Object_Check (parent))
taking True path
when taking False path
when considering value == (int)0 from arm4module.c:4513
taking False path
4514 		parent_ptr = &(parent->arm_correlator);
4515 	else
4516 		parent_ptr = NULL;
4517 
4518 	correlator = newArmCorrelator (NULL);
when newArmCorrelator() succeeds
new ref from (unknown) newArmCorrelator allocated at: 	correlator = newArmCorrelator (NULL);
ob_refcnt is now refs: 1 + N where N >= 0
4519 	correlator_ptr = &(correlator->arm_correlator);
4520 
4521 	status = arm_generate_correlator(
4522 		app_handle->arm_handle,
4523 		&(tran_id->arm_id),
4524 		parent_ptr,
4525 		flags,
4526 		buffer_ptr,
4527 		correlator_ptr);
4528 	if (GETSTATE0->enableExceptions && (status != ARM_SUCCESS))
when considering range: -0x80000000 <= value <= -1
when considering range: -0x80000000 <= value <= -1
taking True path
4529 	{
4530 		set_arm_error (status, "arm_generate_correlator");
4531 		return NULL;
4532 	}
4533 
4534 	/* Return the correlator */
4535 	return (PyObject *) correlator;
4536 }
ob_refcnt of '*correlator' 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 9 similar trace(s) to this

File: arm4module.c
Function: generate_correlator
Error: returning (PyObject*)NULL without setting an exception
4478 static PyObject *
4479 generate_correlator (PyObject *self, PyObject *args, PyObject *keywds)
4480 {
4481     arm_error_t status;
4482 	ArmHandle *app_handle;
4483 	ArmID *tran_id;
4484 	ArmCorrelator *parent = NULL;
4485 	arm_correlator_t *parent_ptr = NULL;
4486 	ArmCorrelator *correlator = NULL;
4487 	arm_correlator_t *correlator_ptr = NULL;
4488 	ArmBuffer *buffer = NULL;
4489 	arm_buffer4_t *buffer_ptr = NULL;
4490 	int flags = ARM_FLAG_NONE;
4491 
4492 	/*
4493 	 * Supported calling signatures:
4494 	 *	generate_correlator (app_handle, tran_id, parent=, flags=, buffers=)
4495 	 */
4496 
4497 	static char *kwlist[] = {"app_handle", "tran_id", "parent", "flags", "buffer", NULL};
4498 
4499 	if (!PyArg_ParseTupleAndKeywords(args, keywds, "OO|OiO:generate_correlator", kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
4500 				&app_handle, &tran_id, &parent, &flags, &buffer))
4501         return NULL;
4502 	if (!ArmHandle_Object_Check(app_handle))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4503 		return NULL;
4504 	if (!ArmID_Object_Check(tran_id))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4505 		return NULL;
4506 	if (buffer && ArmBuffer_Object_Check(buffer))
taking True path
when taking True path
4507 	{
4508 		prepare (buffer);
4509 		buffer_ptr = &(buffer->arm_buffer);
4510 	}
4511 
4512 	/* Set up our optional parameters */
4513 	if (parent && ArmCorrelator_Object_Check (parent))
taking True path
when taking False path
when considering value == (int)0 from arm4module.c:4513
taking False path
4514 		parent_ptr = &(parent->arm_correlator);
4515 	else
4516 		parent_ptr = NULL;
4517 
4518 	correlator = newArmCorrelator (NULL);
when newArmCorrelator() succeeds
4519 	correlator_ptr = &(correlator->arm_correlator);
4520 
4521 	status = arm_generate_correlator(
4522 		app_handle->arm_handle,
4523 		&(tran_id->arm_id),
4524 		parent_ptr,
4525 		flags,
4526 		buffer_ptr,
4527 		correlator_ptr);
4528 	if (GETSTATE0->enableExceptions && (status != ARM_SUCCESS))
when considering range: -0x80000000 <= value <= -1
when considering range: -0x80000000 <= value <= -1
taking True path
4529 	{
4530 		set_arm_error (status, "arm_generate_correlator");
4531 		return NULL;
4532 	}
4533 
4534 	/* Return the correlator */
4535 	return (PyObject *) correlator;
4536 }
returning (PyObject*)NULL without setting an exception
found 9 similar trace(s) to this

File: arm4module.c
Function: generate_correlator
Error: dereferencing NULL (correlator->arm_correlator) at arm4module.c:4519
4478 static PyObject *
4479 generate_correlator (PyObject *self, PyObject *args, PyObject *keywds)
4480 {
4481     arm_error_t status;
4482 	ArmHandle *app_handle;
4483 	ArmID *tran_id;
4484 	ArmCorrelator *parent = NULL;
4485 	arm_correlator_t *parent_ptr = NULL;
4486 	ArmCorrelator *correlator = NULL;
4487 	arm_correlator_t *correlator_ptr = NULL;
4488 	ArmBuffer *buffer = NULL;
4489 	arm_buffer4_t *buffer_ptr = NULL;
4490 	int flags = ARM_FLAG_NONE;
4491 
4492 	/*
4493 	 * Supported calling signatures:
4494 	 *	generate_correlator (app_handle, tran_id, parent=, flags=, buffers=)
4495 	 */
4496 
4497 	static char *kwlist[] = {"app_handle", "tran_id", "parent", "flags", "buffer", NULL};
4498 
4499 	if (!PyArg_ParseTupleAndKeywords(args, keywds, "OO|OiO:generate_correlator", kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
4500 				&app_handle, &tran_id, &parent, &flags, &buffer))
4501         return NULL;
4502 	if (!ArmHandle_Object_Check(app_handle))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4503 		return NULL;
4504 	if (!ArmID_Object_Check(tran_id))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4505 		return NULL;
4506 	if (buffer && ArmBuffer_Object_Check(buffer))
taking True path
when taking True path
4507 	{
4508 		prepare (buffer);
4509 		buffer_ptr = &(buffer->arm_buffer);
4510 	}
4511 
4512 	/* Set up our optional parameters */
4513 	if (parent && ArmCorrelator_Object_Check (parent))
taking True path
when taking False path
when considering range: -0x80000000 <= value <= -1
taking True path
4514 		parent_ptr = &(parent->arm_correlator);
4515 	else
4516 		parent_ptr = NULL;
4517 
4518 	correlator = newArmCorrelator (NULL);
when newArmCorrelator() fails
4519 	correlator_ptr = &(correlator->arm_correlator);
dereferencing NULL (correlator->arm_correlator) at arm4module.c:4519
found 1 similar trace(s) to this
4520 
4521 	status = arm_generate_correlator(
4522 		app_handle->arm_handle,
4523 		&(tran_id->arm_id),
4524 		parent_ptr,
4525 		flags,
4526 		buffer_ptr,
4527 		correlator_ptr);
4528 	if (GETSTATE0->enableExceptions && (status != ARM_SUCCESS))
4529 	{
4530 		set_arm_error (status, "arm_generate_correlator");
4531 		return NULL;
4532 	}
4533 
4534 	/* Return the correlator */
4535 	return (PyObject *) correlator;
4536 }