File: pyewf.c
Function: pyewf_open
Error: returning (PyObject*)NULL without setting an exception
173 PyObject* pyewf_open(
174            PyObject *self,
175            PyObject *arguments,
176            PyObject *keywords )
177 {
178 	PyObject *files             = NULL;
179 	PyObject *file_arguments    = NULL;
180 	PyObject *file_keywords     = NULL;
181 	pyewf_file_t *pyewf_file    = NULL;
182 	static char *keyword_list[] = { "files", NULL };
183 	int result                  = 0;
184 
185 	if( PyArg_ParseTupleAndKeywords(
186 	     arguments,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
187 	     keywords,
188 	     "O",
189 	     keyword_list,
190 	     &files ) == 0 )
191 	{
192 		return( NULL );
193 	}
194 	/* Create an pyewf_file object and return it
195 	 */
196 	file_arguments = PyTuple_New( 0 );
197 
when PyTuple_New() succeeds
198 	if( file_arguments == NULL )
199 	{
taking False path
200 		return( NULL );
201 	}
202 	file_keywords = Py_BuildValue(
203 	                 "{sO}",
when Py_BuildValue() succeeds
204 	                 "files",
205 	                 files );
206 
207 	if( file_keywords == NULL )
208 	{
taking False path
209 		return( NULL );
210 	}
211 	pyewf_file = PyObject_New(
212 	              struct pyewf_file,
when _PyObject_New() succeeds
213 	              &pyewf_type_object );
214 
215 	result = pyewf_file_initialize(
216 	          pyewf_file,
217 	          file_arguments,
218 	          file_keywords );
219 
220 	Py_DECREF(
221 	 file_arguments );
when taking True path
222 	Py_DECREF(
223 	 file_keywords );
when taking True path
224 
225 	if( result == -1 )
226 	{
when considering value == (int)-1 from pyewf.c:216
taking True path
227 		Py_DECREF(
228 		 pyewf_file );
when taking True path
229 
230 		return( NULL );
231 	}
232 	return( (PyObject *) pyewf_file );
233 }
234 
returning (PyObject*)NULL without setting an exception found 7 similar trace(s) to this

File: pyewf.c
Function: pyewf_open
Error: dereferencing NULL (MEM[(struct PyObject *)pyewf_file].ob_refcnt) at pyewf.c:228
173 PyObject* pyewf_open(
174            PyObject *self,
175            PyObject *arguments,
176            PyObject *keywords )
177 {
178 	PyObject *files             = NULL;
179 	PyObject *file_arguments    = NULL;
180 	PyObject *file_keywords     = NULL;
181 	pyewf_file_t *pyewf_file    = NULL;
182 	static char *keyword_list[] = { "files", NULL };
183 	int result                  = 0;
184 
185 	if( PyArg_ParseTupleAndKeywords(
186 	     arguments,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
187 	     keywords,
188 	     "O",
189 	     keyword_list,
190 	     &files ) == 0 )
191 	{
192 		return( NULL );
193 	}
194 	/* Create an pyewf_file object and return it
195 	 */
196 	file_arguments = PyTuple_New( 0 );
197 
when PyTuple_New() succeeds
198 	if( file_arguments == NULL )
199 	{
taking False path
200 		return( NULL );
201 	}
202 	file_keywords = Py_BuildValue(
203 	                 "{sO}",
when Py_BuildValue() succeeds
204 	                 "files",
205 	                 files );
206 
207 	if( file_keywords == NULL )
208 	{
taking False path
209 		return( NULL );
210 	}
211 	pyewf_file = PyObject_New(
212 	              struct pyewf_file,
when _PyObject_New() fails
213 	              &pyewf_type_object );
214 
215 	result = pyewf_file_initialize(
216 	          pyewf_file,
217 	          file_arguments,
218 	          file_keywords );
219 
220 	Py_DECREF(
221 	 file_arguments );
when taking True path
222 	Py_DECREF(
223 	 file_keywords );
when taking True path
224 
225 	if( result == -1 )
226 	{
when considering value == (int)-1 from pyewf.c:216
taking True path
227 		Py_DECREF(
228 		 pyewf_file );
dereferencing NULL (MEM[(struct PyObject *)pyewf_file].ob_refcnt) at pyewf.c:228
found 3 similar trace(s) to this
229 
230 		return( NULL );
231 	}
232 	return( (PyObject *) pyewf_file );
233 }
234 

File: pyewf.c
Function: pyewf_open
Error: ob_refcnt of '*file_arguments' is 1 too high
173 PyObject* pyewf_open(
174            PyObject *self,
175            PyObject *arguments,
176            PyObject *keywords )
177 {
178 	PyObject *files             = NULL;
179 	PyObject *file_arguments    = NULL;
180 	PyObject *file_keywords     = NULL;
181 	pyewf_file_t *pyewf_file    = NULL;
182 	static char *keyword_list[] = { "files", NULL };
183 	int result                  = 0;
184 
185 	if( PyArg_ParseTupleAndKeywords(
186 	     arguments,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
187 	     keywords,
188 	     "O",
189 	     keyword_list,
190 	     &files ) == 0 )
191 	{
192 		return( NULL );
193 	}
194 	/* Create an pyewf_file object and return it
195 	 */
196 	file_arguments = PyTuple_New( 0 );
197 
when PyTuple_New() succeeds
PyTupleObject allocated at: 	file_arguments = PyTuple_New( 0 );
ob_refcnt is now refs: 1 + N where N >= 0
198 	if( file_arguments == NULL )
199 	{
taking False path
200 		return( NULL );
201 	}
202 	file_keywords = Py_BuildValue(
203 	                 "{sO}",
when Py_BuildValue() fails
204 	                 "files",
205 	                 files );
206 
207 	if( file_keywords == NULL )
208 	{
taking True path
209 		return( NULL );
210 	}
211 	pyewf_file = PyObject_New(
212 	              struct pyewf_file,
213 	              &pyewf_type_object );
214 
215 	result = pyewf_file_initialize(
216 	          pyewf_file,
217 	          file_arguments,
218 	          file_keywords );
219 
220 	Py_DECREF(
221 	 file_arguments );
222 	Py_DECREF(
223 	 file_keywords );
224 
225 	if( result == -1 )
226 	{
227 		Py_DECREF(
228 		 pyewf_file );
229 
230 		return( NULL );
231 	}
232 	return( (PyObject *) pyewf_file );
233 }
234 
ob_refcnt of '*file_arguments' is 1 too high was expecting final ob_refcnt to be N + 0 (for some unknown N) but final ob_refcnt is N + 1