File: chain.c
Function: urj_pyc_set_dr
Error: passing uninitialized data (newval.43) as argument 2 to function at chain.c:525
464 static PyObject *
465 urj_pyc_set_dr (urj_pychain_t *self, int in, PyObject *args)
466 {
467     urj_chain_t *urc = self->urchain;
468     urj_part_t *part;
469     urj_tap_register_t *r;
470     urj_data_register_t *dr;
471     urj_part_instruction_t *active_ir;
472     char *newstr = NULL;
473     uint64_t newval;
474     int lsb = -1;
475     int msb = -1;
476 
477     if (!PyArg_ParseTuple (args, "s|ii", &newstr, &msb, &lsb))
when PyArg_ParseTuple() succeeds
taking False path
478         if (!PyArg_ParseTuple (args, "L|ii", &newval, &msb, &lsb))
479             return NULL;
480 
481     if (!urj_pyc_precheck (urc, UPRC_CBL))
when considering range: -0x80000000 <= value <= -1
taking False path
482         return NULL;
483 
484     part = urj_tap_chain_active_part (urc);
485     if (part == NULL)
when treating unknown struct urj_part_t * from chain.c:484 as non-NULL
taking False path
486     {
487         PyErr_SetString (UrjtagError, _("no active part in chain"));
488         return NULL;
489     }
490     active_ir = part->active_instruction;
491     if (active_ir == NULL)
when treating unknown struct urj_part_instruction_t * from chain.c:490 as non-NULL
taking False path
492     {
493         PyErr_SetString (UrjtagError, _("part without active instruction"));
494         return NULL;
495     }
496     dr = active_ir->data_register;
497     if (dr == NULL)
when treating unknown struct urj_data_register_t * from chain.c:496 as non-NULL
taking False path
498     {
499         PyErr_SetString (UrjtagError,
500                          _("instruction without active data register"));
501         return NULL;
502     }
503 
504     if (in)
when considering value == (int)0 from chain.c:465
taking False path
505         r = dr->in;
506     else
507         r = dr->out;
508 
509     if (msb == -1)
when considering range: 0 <= value <= 0x7fffffff
taking False path
510     {
511         if (newstr)
512             return urj_py_chkret (urj_tap_register_set_string(r, newstr));
513         else
514             return urj_py_chkret (urj_tap_register_set_value(r, newval));
515     }
516     else
517     {
518         if (lsb == -1)
when considering range: -0x80000000 <= value <= -2
taking False path
519             lsb = msb;
520 
521         if (newstr)
when treating unknown const char * from chain.c:477 as NULL
taking False path
522             /* TODO urj_tap_register_set_string_bit_range(r, newstr, msb, lsb); */
523             return Py_BuildValue ("");
524         else
525             return urj_py_chkret (urj_tap_register_set_value_bit_range(r, newval, msb, lsb));
passing uninitialized data (newval.43) as argument 2 to function at chain.c:525
found 9 similar trace(s) to this
526     }
527 }

File: chain.c
Function: urj_pyc_set_dr
Error: passing uninitialized data (newval.43) as argument 2 to function at chain.c:514
464 static PyObject *
465 urj_pyc_set_dr (urj_pychain_t *self, int in, PyObject *args)
466 {
467     urj_chain_t *urc = self->urchain;
468     urj_part_t *part;
469     urj_tap_register_t *r;
470     urj_data_register_t *dr;
471     urj_part_instruction_t *active_ir;
472     char *newstr = NULL;
473     uint64_t newval;
474     int lsb = -1;
475     int msb = -1;
476 
477     if (!PyArg_ParseTuple (args, "s|ii", &newstr, &msb, &lsb))
when PyArg_ParseTuple() succeeds
taking False path
478         if (!PyArg_ParseTuple (args, "L|ii", &newval, &msb, &lsb))
479             return NULL;
480 
481     if (!urj_pyc_precheck (urc, UPRC_CBL))
when considering range: -0x80000000 <= value <= -1
taking False path
482         return NULL;
483 
484     part = urj_tap_chain_active_part (urc);
485     if (part == NULL)
when treating unknown struct urj_part_t * from chain.c:484 as non-NULL
taking False path
486     {
487         PyErr_SetString (UrjtagError, _("no active part in chain"));
488         return NULL;
489     }
490     active_ir = part->active_instruction;
491     if (active_ir == NULL)
when treating unknown struct urj_part_instruction_t * from chain.c:490 as non-NULL
taking False path
492     {
493         PyErr_SetString (UrjtagError, _("part without active instruction"));
494         return NULL;
495     }
496     dr = active_ir->data_register;
497     if (dr == NULL)
when treating unknown struct urj_data_register_t * from chain.c:496 as non-NULL
taking False path
498     {
499         PyErr_SetString (UrjtagError,
500                          _("instruction without active data register"));
501         return NULL;
502     }
503 
504     if (in)
when considering value == (int)0 from chain.c:465
taking False path
505         r = dr->in;
506     else
507         r = dr->out;
508 
509     if (msb == -1)
when considering value == (int)-1 from chain.c:477
taking True path
510     {
511         if (newstr)
when treating unknown const char * from chain.c:477 as NULL
taking False path
512             return urj_py_chkret (urj_tap_register_set_string(r, newstr));
513         else
514             return urj_py_chkret (urj_tap_register_set_value(r, newval));
passing uninitialized data (newval.43) as argument 2 to function at chain.c:514
found 1 similar trace(s) to this
515     }
516     else
517     {
518         if (lsb == -1)
519             lsb = msb;
520 
521         if (newstr)
522             /* TODO urj_tap_register_set_string_bit_range(r, newstr, msb, lsb); */
523             return Py_BuildValue ("");
524         else
525             return urj_py_chkret (urj_tap_register_set_value_bit_range(r, newval, msb, lsb));
526     }
527 }