374 PyObject* decode_string(
375 PyObject* self,
376 PyObject* args,
377 PyObject* kwds
378 )
379 {
380 PyObject *Py_input_string;
381 PyObject *Py_output_string;
382 PyObject *retval;
383
384 char *input_buffer = NULL;
385 char *output_buffer = NULL;
386 long crc_value = -1L;
387 int input_len = 0;
388 int output_len = 0;
389 int escape = 0;
390 Crc32 crc;
391
392 static char *kwlist[] = { "string", "crc32", "escape", NULL };
393 if(!PyArg_ParseTupleAndKeywords(args,
394 kwds,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
395 "O!|ii",
396 kwlist,
397 &PyString_Type,
398 &Py_input_string,
399 &crc_value,
400 &escape
401 ))
402 return NULL;
403 crc_init(&crc, crc_value);
404 input_len = PyString_Size(Py_input_string);
405 input_buffer = PyString_AsString(Py_input_string);
when PyString_Size() succeeds
406 output_buffer = (char *) malloc( input_len );
when PyString_AsString() succeeds
407 output_len = decode_buffer(input_buffer, output_buffer, input_len, &crc, &escape);
408 Py_output_string = PyString_FromStringAndSize(output_buffer, output_len);
409 retval = Py_BuildValue("(S,i,i)", Py_output_string, crc.crc, escape);
when PyString_FromStringAndSize() fails
410
when Py_BuildValue() fails
411 free(output_buffer);
412 Py_DECREF(Py_output_string);
413
dereferencing NULL (Py_output_string->ob_refcnt) at src/_yenc.c:413
found 3 similar trace(s) to this
414 return retval;
415 }
416