File: krb5module.c
Function: Context_rd_req
Error: ob_refcnt of '*ctx' is 1 too high
871 static PyObject*
872 Context_rd_req(PyObject *unself, PyObject *args, PyObject *kw)
873 {
874   krb5_context kctx = NULL;
875   PyObject *ctx, *retval, *self, *server = NULL, *keytab = NULL, *tmp, *auth_context = NULL;
876   krb5_auth_context ac_out = NULL;
877   krb5_data inbuf;
878   krb5_keytab kt = NULL;
879   krb5_principal pserver = NULL;
880   krb5_flags ap_req_options = 0;
881   krb5_error_code rc = 0;
882   krb5_ticket *ticket = NULL;
883   int free_keytab = 0;
884   static const char *kwlist[] = {"self", "in_data", "options", "server", "keytab", "auth_context", NULL};
885 
886   if(!PyArg_ParseTupleAndKeywords(args, kw, "Oz#|iOOO:rd_req", (char **)kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
887 				  &self, &inbuf.data, &inbuf.length, &ap_req_options, &server, &keytab, &auth_context))
888     return NULL;
889 
890   ctx = PyObject_GetAttrString(self, "_ctx");
when PyObject_GetAttrString() succeeds
new ref from call to PyObject_GetAttrString allocated at:   ctx = PyObject_GetAttrString(self, "_ctx");
ob_refcnt is now refs: 1 + N where N >= 0
891   kctx = PyCObject_AsVoidPtr(ctx);
when PyCObject_AsVoidPtr() returns
892 
893   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:893
taking False path
894   
895   if(auth_context)
taking True path
896     {
897       tmp = PyObject_GetAttrString(auth_context, "_ac");
when PyObject_GetAttrString() succeeds
898       ac_out = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
899     }
900 
901   if(keytab == Py_None)
taking False path
902     {
903       PyObject *subargs;
904       subargs = Py_BuildValue("(O)", self);
905       keytab = Context_kt_default(unself, subargs, NULL);
906       Py_DECREF(subargs);
907       free_keytab = 1;
908     }
909   if(keytab)
taking True path
910     {
911       tmp = PyObject_GetAttrString(keytab, "_keytab");
when PyObject_GetAttrString() succeeds
912       kt = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
913       if(free_keytab)
taking False path
914 	{
915 	  Py_DECREF(keytab);
916 	}
917     }
918 
919   if(server)
taking True path
920     {
921       tmp = PyObject_GetAttrString(server, "_princ");
when PyObject_GetAttrString() succeeds
922       pserver = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
923     }
924 
925   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:925
taking False path
926 
927   rc = krb5_rd_req(kctx, &ac_out, &inbuf, pserver, kt, &ap_req_options, &ticket);
928   if(rc)
when considering value == (krb5_error_code)0 from krb5module.c:927
taking False path
929     return pk_error(rc);
930 
931   retval = PyTuple_New(ticket->enc_part2?4:3);
when treating unknown struct krb5_ticket * * from krb5module.c:927 as non-NULL
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:931 as non-NULL
taking True path
when PyTuple_New() succeeds
932   if(auth_context)
taking True path
933     {
934       Py_INCREF(auth_context);
935     }
936   else
937     {
938       PyObject *subargs, *mykw = NULL, *otmp;
939 
940       subargs = Py_BuildValue("()");
941       mykw = PyDict_New();
942       PyDict_SetItemString(mykw, "context", self);
943       otmp = PyCObject_FromVoidPtrAndDesc(ac_out, kctx, destroy_ac);
944       PyDict_SetItemString(mykw, "ac", otmp);
945       auth_context = PyEval_CallObjectWithKeywords(auth_context_class, subargs, mykw);
946       Py_DECREF(otmp);
947       Py_DECREF(subargs);
948       Py_XDECREF(mykw);
949     }
950   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:950
taking False path
951 
952   PyTuple_SetItem(retval, 0, auth_context);
when PyTuple_SetItem() succeeds
953   PyTuple_SetItem(retval, 1, PyInt_FromLong(ap_req_options));
when PyInt_FromLong() succeeds
when PyTuple_SetItem() succeeds
954   if(!(tmp = make_principal(self, kctx, ticket->server)))
when make_principal() succeeds
taking False path
955     {
956       Py_DECREF(retval);
957       krb5_free_ticket(kctx, ticket);
958       return NULL;
959     }
960   
961   PyTuple_SetItem(retval, 2, tmp);
when PyTuple_SetItem() succeeds
962 
963   if(ticket->enc_part2)
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:963 as non-NULL
taking True path
964     {
965       PyObject *princtmp;
966 
967       if(!(princtmp = make_principal(self, kctx, ticket->enc_part2->client)))
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:967 as non-NULL
when make_principal() succeeds
taking False path
968 	{
969 	  Py_DECREF(retval);
970 	  krb5_free_ticket(kctx, ticket);
971 	  return NULL;
972 	}
973 
974       tmp = Py_BuildValue("(iOOOOOO)",
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:981 as non-NULL
when make_authdata_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:980 as non-NULL
when make_address_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:979 as non-NULL
when make_ticket_times() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:978 as non-NULL
when make_transited() fails
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:976 as non-NULL
when make_keyblock() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:975 as non-NULL
when Py_BuildValue() fails
975 			  ticket->enc_part2->flags,
976 			  make_keyblock(ticket->enc_part2->session),
977 			  princtmp,
978 			  make_transited(&ticket->enc_part2->transited),
979 			  make_ticket_times(&ticket->enc_part2->times),
980 			  make_address_list(ticket->enc_part2->caddrs, 0),
981 			  make_authdata_list(ticket->enc_part2->authorization_data));
982       PyTuple_SetItem(retval, 3, tmp);
when PyTuple_SetItem() succeeds
983     }
984   krb5_free_ticket(kctx, ticket);
985 
986   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:986
taking False path
987 
988   return retval;
989 } /* KrbV.Context.rd_req() */
ob_refcnt of '*ctx' 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 5 similar trace(s) to this

File: krb5module.c
Function: Context_rd_req
Error: ob_refcnt of new ref from call to PyObject_GetAttrString is 1 too high
871 static PyObject*
872 Context_rd_req(PyObject *unself, PyObject *args, PyObject *kw)
873 {
874   krb5_context kctx = NULL;
875   PyObject *ctx, *retval, *self, *server = NULL, *keytab = NULL, *tmp, *auth_context = NULL;
876   krb5_auth_context ac_out = NULL;
877   krb5_data inbuf;
878   krb5_keytab kt = NULL;
879   krb5_principal pserver = NULL;
880   krb5_flags ap_req_options = 0;
881   krb5_error_code rc = 0;
882   krb5_ticket *ticket = NULL;
883   int free_keytab = 0;
884   static const char *kwlist[] = {"self", "in_data", "options", "server", "keytab", "auth_context", NULL};
885 
886   if(!PyArg_ParseTupleAndKeywords(args, kw, "Oz#|iOOO:rd_req", (char **)kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
887 				  &self, &inbuf.data, &inbuf.length, &ap_req_options, &server, &keytab, &auth_context))
888     return NULL;
889 
890   ctx = PyObject_GetAttrString(self, "_ctx");
when PyObject_GetAttrString() succeeds
891   kctx = PyCObject_AsVoidPtr(ctx);
when PyCObject_AsVoidPtr() returns
892 
893   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:893
taking False path
894   
895   if(auth_context)
taking True path
896     {
897       tmp = PyObject_GetAttrString(auth_context, "_ac");
when PyObject_GetAttrString() succeeds
new ref from call to PyObject_GetAttrString allocated at:       tmp = PyObject_GetAttrString(auth_context, "_ac");
ob_refcnt is now refs: 1 + N where N >= 0
898       ac_out = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
899     }
900 
901   if(keytab == Py_None)
taking False path
902     {
903       PyObject *subargs;
904       subargs = Py_BuildValue("(O)", self);
905       keytab = Context_kt_default(unself, subargs, NULL);
906       Py_DECREF(subargs);
907       free_keytab = 1;
908     }
909   if(keytab)
taking True path
910     {
911       tmp = PyObject_GetAttrString(keytab, "_keytab");
when PyObject_GetAttrString() succeeds
912       kt = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
913       if(free_keytab)
taking False path
914 	{
915 	  Py_DECREF(keytab);
916 	}
917     }
918 
919   if(server)
taking True path
920     {
921       tmp = PyObject_GetAttrString(server, "_princ");
when PyObject_GetAttrString() succeeds
922       pserver = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
923     }
924 
925   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:925
taking False path
926 
927   rc = krb5_rd_req(kctx, &ac_out, &inbuf, pserver, kt, &ap_req_options, &ticket);
928   if(rc)
when considering value == (krb5_error_code)0 from krb5module.c:927
taking False path
929     return pk_error(rc);
930 
931   retval = PyTuple_New(ticket->enc_part2?4:3);
when treating unknown struct krb5_ticket * * from krb5module.c:927 as non-NULL
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:931 as non-NULL
taking True path
when PyTuple_New() succeeds
932   if(auth_context)
taking True path
933     {
934       Py_INCREF(auth_context);
935     }
936   else
937     {
938       PyObject *subargs, *mykw = NULL, *otmp;
939 
940       subargs = Py_BuildValue("()");
941       mykw = PyDict_New();
942       PyDict_SetItemString(mykw, "context", self);
943       otmp = PyCObject_FromVoidPtrAndDesc(ac_out, kctx, destroy_ac);
944       PyDict_SetItemString(mykw, "ac", otmp);
945       auth_context = PyEval_CallObjectWithKeywords(auth_context_class, subargs, mykw);
946       Py_DECREF(otmp);
947       Py_DECREF(subargs);
948       Py_XDECREF(mykw);
949     }
950   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:950
taking False path
951 
952   PyTuple_SetItem(retval, 0, auth_context);
when PyTuple_SetItem() succeeds
953   PyTuple_SetItem(retval, 1, PyInt_FromLong(ap_req_options));
when PyInt_FromLong() succeeds
when PyTuple_SetItem() succeeds
954   if(!(tmp = make_principal(self, kctx, ticket->server)))
when make_principal() succeeds
taking False path
955     {
956       Py_DECREF(retval);
957       krb5_free_ticket(kctx, ticket);
958       return NULL;
959     }
960   
961   PyTuple_SetItem(retval, 2, tmp);
when PyTuple_SetItem() succeeds
962 
963   if(ticket->enc_part2)
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:963 as non-NULL
taking True path
964     {
965       PyObject *princtmp;
966 
967       if(!(princtmp = make_principal(self, kctx, ticket->enc_part2->client)))
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:967 as non-NULL
when make_principal() succeeds
taking False path
968 	{
969 	  Py_DECREF(retval);
970 	  krb5_free_ticket(kctx, ticket);
971 	  return NULL;
972 	}
973 
974       tmp = Py_BuildValue("(iOOOOOO)",
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:981 as non-NULL
when make_authdata_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:980 as non-NULL
when make_address_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:979 as non-NULL
when make_ticket_times() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:978 as non-NULL
when make_transited() fails
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:976 as non-NULL
when make_keyblock() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:975 as non-NULL
when Py_BuildValue() fails
975 			  ticket->enc_part2->flags,
976 			  make_keyblock(ticket->enc_part2->session),
977 			  princtmp,
978 			  make_transited(&ticket->enc_part2->transited),
979 			  make_ticket_times(&ticket->enc_part2->times),
980 			  make_address_list(ticket->enc_part2->caddrs, 0),
981 			  make_authdata_list(ticket->enc_part2->authorization_data));
982       PyTuple_SetItem(retval, 3, tmp);
when PyTuple_SetItem() succeeds
983     }
984   krb5_free_ticket(kctx, ticket);
985 
986   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:986
taking False path
987 
988   return retval;
989 } /* KrbV.Context.rd_req() */
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 17 similar trace(s) to this

File: krb5module.c
Function: Context_rd_req
Error: ob_refcnt of '*princtmp' is 1 too high
871 static PyObject*
872 Context_rd_req(PyObject *unself, PyObject *args, PyObject *kw)
873 {
874   krb5_context kctx = NULL;
875   PyObject *ctx, *retval, *self, *server = NULL, *keytab = NULL, *tmp, *auth_context = NULL;
876   krb5_auth_context ac_out = NULL;
877   krb5_data inbuf;
878   krb5_keytab kt = NULL;
879   krb5_principal pserver = NULL;
880   krb5_flags ap_req_options = 0;
881   krb5_error_code rc = 0;
882   krb5_ticket *ticket = NULL;
883   int free_keytab = 0;
884   static const char *kwlist[] = {"self", "in_data", "options", "server", "keytab", "auth_context", NULL};
885 
886   if(!PyArg_ParseTupleAndKeywords(args, kw, "Oz#|iOOO:rd_req", (char **)kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
887 				  &self, &inbuf.data, &inbuf.length, &ap_req_options, &server, &keytab, &auth_context))
888     return NULL;
889 
890   ctx = PyObject_GetAttrString(self, "_ctx");
when PyObject_GetAttrString() succeeds
891   kctx = PyCObject_AsVoidPtr(ctx);
when PyCObject_AsVoidPtr() returns
892 
893   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:893
taking False path
894   
895   if(auth_context)
taking True path
896     {
897       tmp = PyObject_GetAttrString(auth_context, "_ac");
when PyObject_GetAttrString() succeeds
898       ac_out = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
899     }
900 
901   if(keytab == Py_None)
taking False path
902     {
903       PyObject *subargs;
904       subargs = Py_BuildValue("(O)", self);
905       keytab = Context_kt_default(unself, subargs, NULL);
906       Py_DECREF(subargs);
907       free_keytab = 1;
908     }
909   if(keytab)
taking True path
910     {
911       tmp = PyObject_GetAttrString(keytab, "_keytab");
when PyObject_GetAttrString() succeeds
912       kt = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
913       if(free_keytab)
taking False path
914 	{
915 	  Py_DECREF(keytab);
916 	}
917     }
918 
919   if(server)
taking True path
920     {
921       tmp = PyObject_GetAttrString(server, "_princ");
when PyObject_GetAttrString() succeeds
922       pserver = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
923     }
924 
925   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:925
taking False path
926 
927   rc = krb5_rd_req(kctx, &ac_out, &inbuf, pserver, kt, &ap_req_options, &ticket);
928   if(rc)
when considering value == (krb5_error_code)0 from krb5module.c:927
taking False path
929     return pk_error(rc);
930 
931   retval = PyTuple_New(ticket->enc_part2?4:3);
when treating unknown struct krb5_ticket * * from krb5module.c:927 as non-NULL
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:931 as non-NULL
taking True path
when PyTuple_New() succeeds
932   if(auth_context)
taking True path
933     {
934       Py_INCREF(auth_context);
935     }
936   else
937     {
938       PyObject *subargs, *mykw = NULL, *otmp;
939 
940       subargs = Py_BuildValue("()");
941       mykw = PyDict_New();
942       PyDict_SetItemString(mykw, "context", self);
943       otmp = PyCObject_FromVoidPtrAndDesc(ac_out, kctx, destroy_ac);
944       PyDict_SetItemString(mykw, "ac", otmp);
945       auth_context = PyEval_CallObjectWithKeywords(auth_context_class, subargs, mykw);
946       Py_DECREF(otmp);
947       Py_DECREF(subargs);
948       Py_XDECREF(mykw);
949     }
950   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:950
taking False path
951 
952   PyTuple_SetItem(retval, 0, auth_context);
when PyTuple_SetItem() succeeds
953   PyTuple_SetItem(retval, 1, PyInt_FromLong(ap_req_options));
when PyInt_FromLong() succeeds
when PyTuple_SetItem() succeeds
954   if(!(tmp = make_principal(self, kctx, ticket->server)))
when make_principal() succeeds
taking False path
955     {
956       Py_DECREF(retval);
957       krb5_free_ticket(kctx, ticket);
958       return NULL;
959     }
960   
961   PyTuple_SetItem(retval, 2, tmp);
when PyTuple_SetItem() succeeds
962 
963   if(ticket->enc_part2)
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:963 as non-NULL
taking True path
964     {
965       PyObject *princtmp;
966 
967       if(!(princtmp = make_principal(self, kctx, ticket->enc_part2->client)))
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:967 as non-NULL
when make_principal() succeeds
taking False path
new ref from (unknown) make_principal allocated at:       if(!(princtmp = make_principal(self, kctx, ticket->enc_part2->client)))
ob_refcnt is now refs: 1 + N where N >= 0
968 	{
969 	  Py_DECREF(retval);
970 	  krb5_free_ticket(kctx, ticket);
971 	  return NULL;
972 	}
973 
974       tmp = Py_BuildValue("(iOOOOOO)",
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:981 as non-NULL
when make_authdata_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:980 as non-NULL
when make_address_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:979 as non-NULL
when make_ticket_times() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:978 as non-NULL
when make_transited() fails
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:976 as non-NULL
when make_keyblock() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:975 as non-NULL
when Py_BuildValue() fails
975 			  ticket->enc_part2->flags,
976 			  make_keyblock(ticket->enc_part2->session),
977 			  princtmp,
978 			  make_transited(&ticket->enc_part2->transited),
979 			  make_ticket_times(&ticket->enc_part2->times),
980 			  make_address_list(ticket->enc_part2->caddrs, 0),
981 			  make_authdata_list(ticket->enc_part2->authorization_data));
982       PyTuple_SetItem(retval, 3, tmp);
when PyTuple_SetItem() succeeds
983     }
984   krb5_free_ticket(kctx, ticket);
985 
986   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:986
taking False path
987 
988   return retval;
989 } /* KrbV.Context.rd_req() */
ob_refcnt of '*princtmp' 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 3 similar trace(s) to this

File: krb5module.c
Function: Context_rd_req
Error: ob_refcnt of new ref from (unknown) make_authdata_list is 1 too high
871 static PyObject*
872 Context_rd_req(PyObject *unself, PyObject *args, PyObject *kw)
873 {
874   krb5_context kctx = NULL;
875   PyObject *ctx, *retval, *self, *server = NULL, *keytab = NULL, *tmp, *auth_context = NULL;
876   krb5_auth_context ac_out = NULL;
877   krb5_data inbuf;
878   krb5_keytab kt = NULL;
879   krb5_principal pserver = NULL;
880   krb5_flags ap_req_options = 0;
881   krb5_error_code rc = 0;
882   krb5_ticket *ticket = NULL;
883   int free_keytab = 0;
884   static const char *kwlist[] = {"self", "in_data", "options", "server", "keytab", "auth_context", NULL};
885 
886   if(!PyArg_ParseTupleAndKeywords(args, kw, "Oz#|iOOO:rd_req", (char **)kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
887 				  &self, &inbuf.data, &inbuf.length, &ap_req_options, &server, &keytab, &auth_context))
888     return NULL;
889 
890   ctx = PyObject_GetAttrString(self, "_ctx");
when PyObject_GetAttrString() succeeds
891   kctx = PyCObject_AsVoidPtr(ctx);
when PyCObject_AsVoidPtr() returns
892 
893   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:893
taking False path
894   
895   if(auth_context)
taking True path
896     {
897       tmp = PyObject_GetAttrString(auth_context, "_ac");
when PyObject_GetAttrString() succeeds
898       ac_out = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
899     }
900 
901   if(keytab == Py_None)
taking False path
902     {
903       PyObject *subargs;
904       subargs = Py_BuildValue("(O)", self);
905       keytab = Context_kt_default(unself, subargs, NULL);
906       Py_DECREF(subargs);
907       free_keytab = 1;
908     }
909   if(keytab)
taking True path
910     {
911       tmp = PyObject_GetAttrString(keytab, "_keytab");
when PyObject_GetAttrString() succeeds
912       kt = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
913       if(free_keytab)
taking False path
914 	{
915 	  Py_DECREF(keytab);
916 	}
917     }
918 
919   if(server)
taking True path
920     {
921       tmp = PyObject_GetAttrString(server, "_princ");
when PyObject_GetAttrString() succeeds
922       pserver = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
923     }
924 
925   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:925
taking False path
926 
927   rc = krb5_rd_req(kctx, &ac_out, &inbuf, pserver, kt, &ap_req_options, &ticket);
928   if(rc)
when considering value == (krb5_error_code)0 from krb5module.c:927
taking False path
929     return pk_error(rc);
930 
931   retval = PyTuple_New(ticket->enc_part2?4:3);
when treating unknown struct krb5_ticket * * from krb5module.c:927 as non-NULL
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:931 as non-NULL
taking True path
when PyTuple_New() succeeds
932   if(auth_context)
taking True path
933     {
934       Py_INCREF(auth_context);
935     }
936   else
937     {
938       PyObject *subargs, *mykw = NULL, *otmp;
939 
940       subargs = Py_BuildValue("()");
941       mykw = PyDict_New();
942       PyDict_SetItemString(mykw, "context", self);
943       otmp = PyCObject_FromVoidPtrAndDesc(ac_out, kctx, destroy_ac);
944       PyDict_SetItemString(mykw, "ac", otmp);
945       auth_context = PyEval_CallObjectWithKeywords(auth_context_class, subargs, mykw);
946       Py_DECREF(otmp);
947       Py_DECREF(subargs);
948       Py_XDECREF(mykw);
949     }
950   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:950
taking False path
951 
952   PyTuple_SetItem(retval, 0, auth_context);
when PyTuple_SetItem() succeeds
953   PyTuple_SetItem(retval, 1, PyInt_FromLong(ap_req_options));
when PyInt_FromLong() succeeds
when PyTuple_SetItem() succeeds
954   if(!(tmp = make_principal(self, kctx, ticket->server)))
when make_principal() succeeds
taking False path
955     {
956       Py_DECREF(retval);
957       krb5_free_ticket(kctx, ticket);
958       return NULL;
959     }
960   
961   PyTuple_SetItem(retval, 2, tmp);
when PyTuple_SetItem() succeeds
962 
963   if(ticket->enc_part2)
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:963 as non-NULL
taking True path
964     {
965       PyObject *princtmp;
966 
967       if(!(princtmp = make_principal(self, kctx, ticket->enc_part2->client)))
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:967 as non-NULL
when make_principal() succeeds
taking False path
968 	{
969 	  Py_DECREF(retval);
970 	  krb5_free_ticket(kctx, ticket);
971 	  return NULL;
972 	}
973 
974       tmp = Py_BuildValue("(iOOOOOO)",
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:981 as non-NULL
when make_authdata_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:980 as non-NULL
when make_address_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:979 as non-NULL
when make_ticket_times() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:978 as non-NULL
when make_transited() fails
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:976 as non-NULL
when make_keyblock() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:975 as non-NULL
when Py_BuildValue() fails
new ref from (unknown) make_authdata_list allocated at:       tmp = Py_BuildValue("(iOOOOOO)",
ob_refcnt is now refs: 1 + N where N >= 0
975 			  ticket->enc_part2->flags,
976 			  make_keyblock(ticket->enc_part2->session),
977 			  princtmp,
978 			  make_transited(&ticket->enc_part2->transited),
979 			  make_ticket_times(&ticket->enc_part2->times),
980 			  make_address_list(ticket->enc_part2->caddrs, 0),
981 			  make_authdata_list(ticket->enc_part2->authorization_data));
982       PyTuple_SetItem(retval, 3, tmp);
when PyTuple_SetItem() succeeds
983     }
984   krb5_free_ticket(kctx, ticket);
985 
986   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:986
taking False path
987 
988   return retval;
989 } /* KrbV.Context.rd_req() */
ob_refcnt of new ref from (unknown) make_authdata_list 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 3 similar trace(s) to this

File: krb5module.c
Function: Context_rd_req
Error: ob_refcnt of new ref from (unknown) make_address_list is 1 too high
871 static PyObject*
872 Context_rd_req(PyObject *unself, PyObject *args, PyObject *kw)
873 {
874   krb5_context kctx = NULL;
875   PyObject *ctx, *retval, *self, *server = NULL, *keytab = NULL, *tmp, *auth_context = NULL;
876   krb5_auth_context ac_out = NULL;
877   krb5_data inbuf;
878   krb5_keytab kt = NULL;
879   krb5_principal pserver = NULL;
880   krb5_flags ap_req_options = 0;
881   krb5_error_code rc = 0;
882   krb5_ticket *ticket = NULL;
883   int free_keytab = 0;
884   static const char *kwlist[] = {"self", "in_data", "options", "server", "keytab", "auth_context", NULL};
885 
886   if(!PyArg_ParseTupleAndKeywords(args, kw, "Oz#|iOOO:rd_req", (char **)kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
887 				  &self, &inbuf.data, &inbuf.length, &ap_req_options, &server, &keytab, &auth_context))
888     return NULL;
889 
890   ctx = PyObject_GetAttrString(self, "_ctx");
when PyObject_GetAttrString() succeeds
891   kctx = PyCObject_AsVoidPtr(ctx);
when PyCObject_AsVoidPtr() returns
892 
893   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:893
taking False path
894   
895   if(auth_context)
taking True path
896     {
897       tmp = PyObject_GetAttrString(auth_context, "_ac");
when PyObject_GetAttrString() succeeds
898       ac_out = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
899     }
900 
901   if(keytab == Py_None)
taking False path
902     {
903       PyObject *subargs;
904       subargs = Py_BuildValue("(O)", self);
905       keytab = Context_kt_default(unself, subargs, NULL);
906       Py_DECREF(subargs);
907       free_keytab = 1;
908     }
909   if(keytab)
taking True path
910     {
911       tmp = PyObject_GetAttrString(keytab, "_keytab");
when PyObject_GetAttrString() succeeds
912       kt = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
913       if(free_keytab)
taking False path
914 	{
915 	  Py_DECREF(keytab);
916 	}
917     }
918 
919   if(server)
taking True path
920     {
921       tmp = PyObject_GetAttrString(server, "_princ");
when PyObject_GetAttrString() succeeds
922       pserver = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
923     }
924 
925   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:925
taking False path
926 
927   rc = krb5_rd_req(kctx, &ac_out, &inbuf, pserver, kt, &ap_req_options, &ticket);
928   if(rc)
when considering value == (krb5_error_code)0 from krb5module.c:927
taking False path
929     return pk_error(rc);
930 
931   retval = PyTuple_New(ticket->enc_part2?4:3);
when treating unknown struct krb5_ticket * * from krb5module.c:927 as non-NULL
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:931 as non-NULL
taking True path
when PyTuple_New() succeeds
932   if(auth_context)
taking True path
933     {
934       Py_INCREF(auth_context);
935     }
936   else
937     {
938       PyObject *subargs, *mykw = NULL, *otmp;
939 
940       subargs = Py_BuildValue("()");
941       mykw = PyDict_New();
942       PyDict_SetItemString(mykw, "context", self);
943       otmp = PyCObject_FromVoidPtrAndDesc(ac_out, kctx, destroy_ac);
944       PyDict_SetItemString(mykw, "ac", otmp);
945       auth_context = PyEval_CallObjectWithKeywords(auth_context_class, subargs, mykw);
946       Py_DECREF(otmp);
947       Py_DECREF(subargs);
948       Py_XDECREF(mykw);
949     }
950   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:950
taking False path
951 
952   PyTuple_SetItem(retval, 0, auth_context);
when PyTuple_SetItem() succeeds
953   PyTuple_SetItem(retval, 1, PyInt_FromLong(ap_req_options));
when PyInt_FromLong() succeeds
when PyTuple_SetItem() succeeds
954   if(!(tmp = make_principal(self, kctx, ticket->server)))
when make_principal() succeeds
taking False path
955     {
956       Py_DECREF(retval);
957       krb5_free_ticket(kctx, ticket);
958       return NULL;
959     }
960   
961   PyTuple_SetItem(retval, 2, tmp);
when PyTuple_SetItem() succeeds
962 
963   if(ticket->enc_part2)
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:963 as non-NULL
taking True path
964     {
965       PyObject *princtmp;
966 
967       if(!(princtmp = make_principal(self, kctx, ticket->enc_part2->client)))
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:967 as non-NULL
when make_principal() succeeds
taking False path
968 	{
969 	  Py_DECREF(retval);
970 	  krb5_free_ticket(kctx, ticket);
971 	  return NULL;
972 	}
973 
974       tmp = Py_BuildValue("(iOOOOOO)",
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:981 as non-NULL
when make_authdata_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:980 as non-NULL
when make_address_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:979 as non-NULL
when make_ticket_times() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:978 as non-NULL
when make_transited() fails
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:976 as non-NULL
when make_keyblock() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:975 as non-NULL
when Py_BuildValue() fails
new ref from (unknown) make_address_list allocated at:       tmp = Py_BuildValue("(iOOOOOO)",
ob_refcnt is now refs: 1 + N where N >= 0
975 			  ticket->enc_part2->flags,
976 			  make_keyblock(ticket->enc_part2->session),
977 			  princtmp,
978 			  make_transited(&ticket->enc_part2->transited),
979 			  make_ticket_times(&ticket->enc_part2->times),
980 			  make_address_list(ticket->enc_part2->caddrs, 0),
981 			  make_authdata_list(ticket->enc_part2->authorization_data));
982       PyTuple_SetItem(retval, 3, tmp);
when PyTuple_SetItem() succeeds
983     }
984   krb5_free_ticket(kctx, ticket);
985 
986   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:986
taking False path
987 
988   return retval;
989 } /* KrbV.Context.rd_req() */
ob_refcnt of new ref from (unknown) make_address_list 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 3 similar trace(s) to this

File: krb5module.c
Function: Context_rd_req
Error: ob_refcnt of new ref from (unknown) make_ticket_times is 1 too high
871 static PyObject*
872 Context_rd_req(PyObject *unself, PyObject *args, PyObject *kw)
873 {
874   krb5_context kctx = NULL;
875   PyObject *ctx, *retval, *self, *server = NULL, *keytab = NULL, *tmp, *auth_context = NULL;
876   krb5_auth_context ac_out = NULL;
877   krb5_data inbuf;
878   krb5_keytab kt = NULL;
879   krb5_principal pserver = NULL;
880   krb5_flags ap_req_options = 0;
881   krb5_error_code rc = 0;
882   krb5_ticket *ticket = NULL;
883   int free_keytab = 0;
884   static const char *kwlist[] = {"self", "in_data", "options", "server", "keytab", "auth_context", NULL};
885 
886   if(!PyArg_ParseTupleAndKeywords(args, kw, "Oz#|iOOO:rd_req", (char **)kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
887 				  &self, &inbuf.data, &inbuf.length, &ap_req_options, &server, &keytab, &auth_context))
888     return NULL;
889 
890   ctx = PyObject_GetAttrString(self, "_ctx");
when PyObject_GetAttrString() succeeds
891   kctx = PyCObject_AsVoidPtr(ctx);
when PyCObject_AsVoidPtr() returns
892 
893   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:893
taking False path
894   
895   if(auth_context)
taking True path
896     {
897       tmp = PyObject_GetAttrString(auth_context, "_ac");
when PyObject_GetAttrString() succeeds
898       ac_out = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
899     }
900 
901   if(keytab == Py_None)
taking False path
902     {
903       PyObject *subargs;
904       subargs = Py_BuildValue("(O)", self);
905       keytab = Context_kt_default(unself, subargs, NULL);
906       Py_DECREF(subargs);
907       free_keytab = 1;
908     }
909   if(keytab)
taking True path
910     {
911       tmp = PyObject_GetAttrString(keytab, "_keytab");
when PyObject_GetAttrString() succeeds
912       kt = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
913       if(free_keytab)
taking False path
914 	{
915 	  Py_DECREF(keytab);
916 	}
917     }
918 
919   if(server)
taking True path
920     {
921       tmp = PyObject_GetAttrString(server, "_princ");
when PyObject_GetAttrString() succeeds
922       pserver = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
923     }
924 
925   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:925
taking False path
926 
927   rc = krb5_rd_req(kctx, &ac_out, &inbuf, pserver, kt, &ap_req_options, &ticket);
928   if(rc)
when considering value == (krb5_error_code)0 from krb5module.c:927
taking False path
929     return pk_error(rc);
930 
931   retval = PyTuple_New(ticket->enc_part2?4:3);
when treating unknown struct krb5_ticket * * from krb5module.c:927 as non-NULL
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:931 as non-NULL
taking True path
when PyTuple_New() succeeds
932   if(auth_context)
taking True path
933     {
934       Py_INCREF(auth_context);
935     }
936   else
937     {
938       PyObject *subargs, *mykw = NULL, *otmp;
939 
940       subargs = Py_BuildValue("()");
941       mykw = PyDict_New();
942       PyDict_SetItemString(mykw, "context", self);
943       otmp = PyCObject_FromVoidPtrAndDesc(ac_out, kctx, destroy_ac);
944       PyDict_SetItemString(mykw, "ac", otmp);
945       auth_context = PyEval_CallObjectWithKeywords(auth_context_class, subargs, mykw);
946       Py_DECREF(otmp);
947       Py_DECREF(subargs);
948       Py_XDECREF(mykw);
949     }
950   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:950
taking False path
951 
952   PyTuple_SetItem(retval, 0, auth_context);
when PyTuple_SetItem() succeeds
953   PyTuple_SetItem(retval, 1, PyInt_FromLong(ap_req_options));
when PyInt_FromLong() succeeds
when PyTuple_SetItem() succeeds
954   if(!(tmp = make_principal(self, kctx, ticket->server)))
when make_principal() succeeds
taking False path
955     {
956       Py_DECREF(retval);
957       krb5_free_ticket(kctx, ticket);
958       return NULL;
959     }
960   
961   PyTuple_SetItem(retval, 2, tmp);
when PyTuple_SetItem() succeeds
962 
963   if(ticket->enc_part2)
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:963 as non-NULL
taking True path
964     {
965       PyObject *princtmp;
966 
967       if(!(princtmp = make_principal(self, kctx, ticket->enc_part2->client)))
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:967 as non-NULL
when make_principal() succeeds
taking False path
968 	{
969 	  Py_DECREF(retval);
970 	  krb5_free_ticket(kctx, ticket);
971 	  return NULL;
972 	}
973 
974       tmp = Py_BuildValue("(iOOOOOO)",
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:981 as non-NULL
when make_authdata_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:980 as non-NULL
when make_address_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:979 as non-NULL
when make_ticket_times() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:978 as non-NULL
when make_transited() fails
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:976 as non-NULL
when make_keyblock() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:975 as non-NULL
when Py_BuildValue() fails
new ref from (unknown) make_ticket_times allocated at:       tmp = Py_BuildValue("(iOOOOOO)",
ob_refcnt is now refs: 1 + N where N >= 0
975 			  ticket->enc_part2->flags,
976 			  make_keyblock(ticket->enc_part2->session),
977 			  princtmp,
978 			  make_transited(&ticket->enc_part2->transited),
979 			  make_ticket_times(&ticket->enc_part2->times),
980 			  make_address_list(ticket->enc_part2->caddrs, 0),
981 			  make_authdata_list(ticket->enc_part2->authorization_data));
982       PyTuple_SetItem(retval, 3, tmp);
when PyTuple_SetItem() succeeds
983     }
984   krb5_free_ticket(kctx, ticket);
985 
986   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:986
taking False path
987 
988   return retval;
989 } /* KrbV.Context.rd_req() */
ob_refcnt of new ref from (unknown) make_ticket_times 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 3 similar trace(s) to this

File: krb5module.c
Function: Context_rd_req
Error: ob_refcnt of new ref from (unknown) make_keyblock is 1 too high
871 static PyObject*
872 Context_rd_req(PyObject *unself, PyObject *args, PyObject *kw)
873 {
874   krb5_context kctx = NULL;
875   PyObject *ctx, *retval, *self, *server = NULL, *keytab = NULL, *tmp, *auth_context = NULL;
876   krb5_auth_context ac_out = NULL;
877   krb5_data inbuf;
878   krb5_keytab kt = NULL;
879   krb5_principal pserver = NULL;
880   krb5_flags ap_req_options = 0;
881   krb5_error_code rc = 0;
882   krb5_ticket *ticket = NULL;
883   int free_keytab = 0;
884   static const char *kwlist[] = {"self", "in_data", "options", "server", "keytab", "auth_context", NULL};
885 
886   if(!PyArg_ParseTupleAndKeywords(args, kw, "Oz#|iOOO:rd_req", (char **)kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
887 				  &self, &inbuf.data, &inbuf.length, &ap_req_options, &server, &keytab, &auth_context))
888     return NULL;
889 
890   ctx = PyObject_GetAttrString(self, "_ctx");
when PyObject_GetAttrString() succeeds
891   kctx = PyCObject_AsVoidPtr(ctx);
when PyCObject_AsVoidPtr() returns
892 
893   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:893
taking False path
894   
895   if(auth_context)
taking True path
896     {
897       tmp = PyObject_GetAttrString(auth_context, "_ac");
when PyObject_GetAttrString() succeeds
898       ac_out = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
899     }
900 
901   if(keytab == Py_None)
taking False path
902     {
903       PyObject *subargs;
904       subargs = Py_BuildValue("(O)", self);
905       keytab = Context_kt_default(unself, subargs, NULL);
906       Py_DECREF(subargs);
907       free_keytab = 1;
908     }
909   if(keytab)
taking True path
910     {
911       tmp = PyObject_GetAttrString(keytab, "_keytab");
when PyObject_GetAttrString() succeeds
912       kt = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
913       if(free_keytab)
taking False path
914 	{
915 	  Py_DECREF(keytab);
916 	}
917     }
918 
919   if(server)
taking True path
920     {
921       tmp = PyObject_GetAttrString(server, "_princ");
when PyObject_GetAttrString() succeeds
922       pserver = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
923     }
924 
925   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:925
taking False path
926 
927   rc = krb5_rd_req(kctx, &ac_out, &inbuf, pserver, kt, &ap_req_options, &ticket);
928   if(rc)
when considering value == (krb5_error_code)0 from krb5module.c:927
taking False path
929     return pk_error(rc);
930 
931   retval = PyTuple_New(ticket->enc_part2?4:3);
when treating unknown struct krb5_ticket * * from krb5module.c:927 as non-NULL
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:931 as non-NULL
taking True path
when PyTuple_New() succeeds
932   if(auth_context)
taking True path
933     {
934       Py_INCREF(auth_context);
935     }
936   else
937     {
938       PyObject *subargs, *mykw = NULL, *otmp;
939 
940       subargs = Py_BuildValue("()");
941       mykw = PyDict_New();
942       PyDict_SetItemString(mykw, "context", self);
943       otmp = PyCObject_FromVoidPtrAndDesc(ac_out, kctx, destroy_ac);
944       PyDict_SetItemString(mykw, "ac", otmp);
945       auth_context = PyEval_CallObjectWithKeywords(auth_context_class, subargs, mykw);
946       Py_DECREF(otmp);
947       Py_DECREF(subargs);
948       Py_XDECREF(mykw);
949     }
950   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:950
taking False path
951 
952   PyTuple_SetItem(retval, 0, auth_context);
when PyTuple_SetItem() succeeds
953   PyTuple_SetItem(retval, 1, PyInt_FromLong(ap_req_options));
when PyInt_FromLong() succeeds
when PyTuple_SetItem() succeeds
954   if(!(tmp = make_principal(self, kctx, ticket->server)))
when make_principal() succeeds
taking False path
955     {
956       Py_DECREF(retval);
957       krb5_free_ticket(kctx, ticket);
958       return NULL;
959     }
960   
961   PyTuple_SetItem(retval, 2, tmp);
when PyTuple_SetItem() succeeds
962 
963   if(ticket->enc_part2)
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:963 as non-NULL
taking True path
964     {
965       PyObject *princtmp;
966 
967       if(!(princtmp = make_principal(self, kctx, ticket->enc_part2->client)))
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:967 as non-NULL
when make_principal() succeeds
taking False path
968 	{
969 	  Py_DECREF(retval);
970 	  krb5_free_ticket(kctx, ticket);
971 	  return NULL;
972 	}
973 
974       tmp = Py_BuildValue("(iOOOOOO)",
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:981 as non-NULL
when make_authdata_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:980 as non-NULL
when make_address_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:979 as non-NULL
when make_ticket_times() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:978 as non-NULL
when make_transited() fails
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:976 as non-NULL
when make_keyblock() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:975 as non-NULL
when Py_BuildValue() fails
new ref from (unknown) make_keyblock allocated at:       tmp = Py_BuildValue("(iOOOOOO)",
ob_refcnt is now refs: 1 + N where N >= 0
975 			  ticket->enc_part2->flags,
976 			  make_keyblock(ticket->enc_part2->session),
977 			  princtmp,
978 			  make_transited(&ticket->enc_part2->transited),
979 			  make_ticket_times(&ticket->enc_part2->times),
980 			  make_address_list(ticket->enc_part2->caddrs, 0),
981 			  make_authdata_list(ticket->enc_part2->authorization_data));
982       PyTuple_SetItem(retval, 3, tmp);
when PyTuple_SetItem() succeeds
983     }
984   krb5_free_ticket(kctx, ticket);
985 
986   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:986
taking False path
987 
988   return retval;
989 } /* KrbV.Context.rd_req() */
ob_refcnt of new ref from (unknown) make_keyblock 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 2 similar trace(s) to this

File: krb5module.c
Function: Context_rd_req
Error: ob_refcnt of new ref from (unknown) make_transited is 1 too high
871 static PyObject*
872 Context_rd_req(PyObject *unself, PyObject *args, PyObject *kw)
873 {
874   krb5_context kctx = NULL;
875   PyObject *ctx, *retval, *self, *server = NULL, *keytab = NULL, *tmp, *auth_context = NULL;
876   krb5_auth_context ac_out = NULL;
877   krb5_data inbuf;
878   krb5_keytab kt = NULL;
879   krb5_principal pserver = NULL;
880   krb5_flags ap_req_options = 0;
881   krb5_error_code rc = 0;
882   krb5_ticket *ticket = NULL;
883   int free_keytab = 0;
884   static const char *kwlist[] = {"self", "in_data", "options", "server", "keytab", "auth_context", NULL};
885 
886   if(!PyArg_ParseTupleAndKeywords(args, kw, "Oz#|iOOO:rd_req", (char **)kwlist,
when PyArg_ParseTupleAndKeywords() succeeds
taking False path
887 				  &self, &inbuf.data, &inbuf.length, &ap_req_options, &server, &keytab, &auth_context))
888     return NULL;
889 
890   ctx = PyObject_GetAttrString(self, "_ctx");
when PyObject_GetAttrString() succeeds
891   kctx = PyCObject_AsVoidPtr(ctx);
when PyCObject_AsVoidPtr() returns
892 
893   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:893
taking False path
894   
895   if(auth_context)
taking True path
896     {
897       tmp = PyObject_GetAttrString(auth_context, "_ac");
when PyObject_GetAttrString() succeeds
898       ac_out = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
899     }
900 
901   if(keytab == Py_None)
taking False path
902     {
903       PyObject *subargs;
904       subargs = Py_BuildValue("(O)", self);
905       keytab = Context_kt_default(unself, subargs, NULL);
906       Py_DECREF(subargs);
907       free_keytab = 1;
908     }
909   if(keytab)
taking True path
910     {
911       tmp = PyObject_GetAttrString(keytab, "_keytab");
when PyObject_GetAttrString() succeeds
912       kt = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
913       if(free_keytab)
taking False path
914 	{
915 	  Py_DECREF(keytab);
916 	}
917     }
918 
919   if(server)
taking True path
920     {
921       tmp = PyObject_GetAttrString(server, "_princ");
when PyObject_GetAttrString() succeeds
922       pserver = PyCObject_AsVoidPtr(tmp);
when PyCObject_AsVoidPtr() returns
923     }
924 
925   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:925
taking False path
926 
927   rc = krb5_rd_req(kctx, &ac_out, &inbuf, pserver, kt, &ap_req_options, &ticket);
928   if(rc)
when considering value == (krb5_error_code)0 from krb5module.c:927
taking False path
929     return pk_error(rc);
930 
931   retval = PyTuple_New(ticket->enc_part2?4:3);
when treating unknown struct krb5_ticket * * from krb5module.c:927 as non-NULL
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:931 as non-NULL
taking True path
when PyTuple_New() succeeds
932   if(auth_context)
taking True path
933     {
934       Py_INCREF(auth_context);
935     }
936   else
937     {
938       PyObject *subargs, *mykw = NULL, *otmp;
939 
940       subargs = Py_BuildValue("()");
941       mykw = PyDict_New();
942       PyDict_SetItemString(mykw, "context", self);
943       otmp = PyCObject_FromVoidPtrAndDesc(ac_out, kctx, destroy_ac);
944       PyDict_SetItemString(mykw, "ac", otmp);
945       auth_context = PyEval_CallObjectWithKeywords(auth_context_class, subargs, mykw);
946       Py_DECREF(otmp);
947       Py_DECREF(subargs);
948       Py_XDECREF(mykw);
949     }
950   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:950
taking False path
951 
952   PyTuple_SetItem(retval, 0, auth_context);
when PyTuple_SetItem() succeeds
953   PyTuple_SetItem(retval, 1, PyInt_FromLong(ap_req_options));
when PyInt_FromLong() succeeds
when PyTuple_SetItem() succeeds
954   if(!(tmp = make_principal(self, kctx, ticket->server)))
when make_principal() succeeds
taking False path
955     {
956       Py_DECREF(retval);
957       krb5_free_ticket(kctx, ticket);
958       return NULL;
959     }
960   
961   PyTuple_SetItem(retval, 2, tmp);
when PyTuple_SetItem() succeeds
962 
963   if(ticket->enc_part2)
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:963 as non-NULL
taking True path
964     {
965       PyObject *princtmp;
966 
967       if(!(princtmp = make_principal(self, kctx, ticket->enc_part2->client)))
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:967 as non-NULL
when make_principal() succeeds
taking False path
968 	{
969 	  Py_DECREF(retval);
970 	  krb5_free_ticket(kctx, ticket);
971 	  return NULL;
972 	}
973 
974       tmp = Py_BuildValue("(iOOOOOO)",
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:981 as non-NULL
when make_authdata_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:980 as non-NULL
when make_address_list() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:979 as non-NULL
when make_ticket_times() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:978 as non-NULL
when make_transited() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:976 as non-NULL
when make_keyblock() succeeds
when treating unknown struct krb5_enc_tkt_part * from krb5module.c:975 as non-NULL
when Py_BuildValue() succeeds
new ref from (unknown) make_transited allocated at:       tmp = Py_BuildValue("(iOOOOOO)",
ob_refcnt is now refs: 1 + N where N >= 0
ob_refcnt is now refs: 1 + N where N >= 1
975 			  ticket->enc_part2->flags,
976 			  make_keyblock(ticket->enc_part2->session),
977 			  princtmp,
978 			  make_transited(&ticket->enc_part2->transited),
979 			  make_ticket_times(&ticket->enc_part2->times),
980 			  make_address_list(ticket->enc_part2->caddrs, 0),
981 			  make_authdata_list(ticket->enc_part2->authorization_data));
982       PyTuple_SetItem(retval, 3, tmp);
when PyTuple_SetItem() succeeds
983     }
984   krb5_free_ticket(kctx, ticket);
985 
986   assert(!check_obj(args));
when considering value == (int)0 from krb5module.c:986
taking False path
987 
988   return retval;
989 } /* KrbV.Context.rd_req() */
ob_refcnt of new ref from (unknown) make_transited 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 2 similar trace(s) to this