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 }