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
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