File: arm4module.c
Function: block_transaction
Error: ob_refcnt of '*block_handle' is 1 too high
4087 static PyObject *
4088 block_transaction (PyObject *self, PyObject *args, PyObject *keywds)
4089 {
4090     arm_error_t status;
4091 	ArmHandle *tran_handle;
4092 	ArmHandle *block_handle;
4093 
4094 	/*
4095 	 * Supported calling signatures:
4096 	 *	block_transaction (tran_handle)
4097 	 */
4098 	static char *kwlist[] = {"tran_handle", NULL};
4099 
4100 	if (!PyArg_ParseTupleAndKeywords(args, keywds, "O:block_transaction", kwlist, &tran_handle))
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
4101         return NULL;
4102 	if (!ArmHandle_Object_Check(tran_handle))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4103 		return NULL;
4104 
4105 	block_handle = newArmHandle (0);
when newArmHandle() succeeds
new ref from (unknown) newArmHandle allocated at: 	block_handle = newArmHandle (0);
ob_refcnt is now refs: 1 + N where N >= 0
4106 	status = arm_block_transaction(
4107 		tran_handle->arm_handle,
4108 		0,
4109 		NULL, /* No valid buffer types */
4110 		&(block_handle->arm_handle));
4111 	if (GETSTATE0->enableExceptions && (status != ARM_SUCCESS))
when considering range: -0x80000000 <= value <= -1
when considering range: -0x80000000 <= value <= -1
taking True path
4112 	{
4113 		set_arm_error (status, "arm_block_transaction");
4114 		return NULL;
4115 	}
4116 
4117 	/* Return the handle */
4118 	return (PyObject *) block_handle;
4119 }
ob_refcnt of '*block_handle' 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 11 similar trace(s) to this

File: arm4module.c
Function: block_transaction
Error: returning (PyObject*)NULL without setting an exception
4087 static PyObject *
4088 block_transaction (PyObject *self, PyObject *args, PyObject *keywds)
4089 {
4090     arm_error_t status;
4091 	ArmHandle *tran_handle;
4092 	ArmHandle *block_handle;
4093 
4094 	/*
4095 	 * Supported calling signatures:
4096 	 *	block_transaction (tran_handle)
4097 	 */
4098 	static char *kwlist[] = {"tran_handle", NULL};
4099 
4100 	if (!PyArg_ParseTupleAndKeywords(args, keywds, "O:block_transaction", kwlist, &tran_handle))
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
4101         return NULL;
4102 	if (!ArmHandle_Object_Check(tran_handle))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4103 		return NULL;
4104 
4105 	block_handle = newArmHandle (0);
when newArmHandle() succeeds
4106 	status = arm_block_transaction(
4107 		tran_handle->arm_handle,
4108 		0,
4109 		NULL, /* No valid buffer types */
4110 		&(block_handle->arm_handle));
4111 	if (GETSTATE0->enableExceptions && (status != ARM_SUCCESS))
when considering range: -0x80000000 <= value <= -1
when considering range: -0x80000000 <= value <= -1
taking True path
4112 	{
4113 		set_arm_error (status, "arm_block_transaction");
4114 		return NULL;
4115 	}
4116 
4117 	/* Return the handle */
4118 	return (PyObject *) block_handle;
4119 }
returning (PyObject*)NULL without setting an exception
found 12 similar trace(s) to this

File: arm4module.c
Function: block_transaction
Error: dereferencing NULL (block_handle->arm_handle) at arm4module.c:4110
4087 static PyObject *
4088 block_transaction (PyObject *self, PyObject *args, PyObject *keywds)
4089 {
4090     arm_error_t status;
4091 	ArmHandle *tran_handle;
4092 	ArmHandle *block_handle;
4093 
4094 	/*
4095 	 * Supported calling signatures:
4096 	 *	block_transaction (tran_handle)
4097 	 */
4098 	static char *kwlist[] = {"tran_handle", NULL};
4099 
4100 	if (!PyArg_ParseTupleAndKeywords(args, keywds, "O:block_transaction", kwlist, &tran_handle))
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
4101         return NULL;
4102 	if (!ArmHandle_Object_Check(tran_handle))
when taking True path
when considering range: -0x80000000 <= value <= -1
taking False path
4103 		return NULL;
4104 
4105 	block_handle = newArmHandle (0);
when newArmHandle() fails
4106 	status = arm_block_transaction(
4107 		tran_handle->arm_handle,
4108 		0,
4109 		NULL, /* No valid buffer types */
4110 		&(block_handle->arm_handle));
dereferencing NULL (block_handle->arm_handle) at arm4module.c:4110
found 2 similar trace(s) to this
4111 	if (GETSTATE0->enableExceptions && (status != ARM_SUCCESS))
4112 	{
4113 		set_arm_error (status, "arm_block_transaction");
4114 		return NULL;
4115 	}
4116 
4117 	/* Return the handle */
4118 	return (PyObject *) block_handle;
4119 }