3562 static PyObject*
3563 Keytab_getattr(PyObject *unself __UNUSED, PyObject *args)
3564 {
3565 char *name;
3566 PyObject *retval = NULL, *self, *tmp;
3567 krb5_context ctx = NULL;
3568 krb5_keytab keytab = NULL;
3569 krb5_error_code rc;
3570
3571 if(!PyArg_ParseTuple(args, "Os:__getattr__", &self, &name))
when PyArg_ParseTuple() succeeds
taking False path
3572 return NULL;
3573
3574 if(strcmp(name, "context") && strcmp(name, "_keytab"))
taking False path
when considering range: -0x80000000 <= value <= -1
taking True path
taking False path
when considering range: -0x80000000 <= value <= -1
taking True path
3575 {
3576 tmp = PyObject_GetAttrString(self, "context");
when PyObject_GetAttrString() succeeds
new ref from call to PyObject_GetAttrString allocated at: tmp = PyObject_GetAttrString(self, "context");
ob_refcnt is now refs: 1 + N where N >= 0
3577 if(tmp)
taking True path
3578 {
3579 tmp = PyObject_GetAttrString(tmp, "_ctx");
when PyObject_GetAttrString() fails
3580 if(tmp)
taking False path
3581 ctx = PyCObject_AsVoidPtr(tmp);
3582 }
3583 tmp = PyObject_GetAttrString(self, "_keytab");
when PyObject_GetAttrString() succeeds
3584 if(tmp)
taking True path
3585 keytab = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
3586 }
3587
3588 if(!strcmp(name, "name"))
taking False path
when considering range: -0x80000000 <= value <= -1
taking False path
3589 {
3590 char nombuf[64];
3591
3592 rc = krb5_kt_get_name(ctx, keytab, nombuf, sizeof(nombuf));
3593 if(rc)
3594 return pk_error(rc);
3595 retval = PyString_FromString(nombuf);
3596 }
3597 else
3598 {
3599 PyErr_Format(PyExc_AttributeError, "%.50s instance has no attribute '%.400s'",
PyErr_Format()
3600 PyString_AS_STRING(((PyInstanceObject *)self)->in_class->cl_name), name);
when treating unknown struct PyClassObject * from krb5module.c:3600 as non-NULL
when treating unknown struct PyObject * from krb5module.c:3600 as non-NULL
3601 retval = NULL;
3602 }
3603
3604 return retval;
3605 } /* KrbV.Keytab.__getattr__() */
ob_refcnt of new ref from call to PyObject_GetAttrString 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 55 similar trace(s) to this