Index: kdc/do_as_req.c =================================================================== RCS file: /cvs/krbdev/krb5/src/kdc/do_as_req.c,v retrieving revision 5.90 diff -c -r5.90 do_as_req.c *** kdc/do_as_req.c 4 Nov 2002 02:20:51 -0000 5.90 --- kdc/do_as_req.c 25 Apr 2005 22:02:56 -0000 *************** *** 524,529 **** retval = krb5_mk_error(kdc_context, &errpkt, scratch); free(errpkt.text.data); ! *response = scratch; return retval; } --- 524,533 ---- retval = krb5_mk_error(kdc_context, &errpkt, scratch); free(errpkt.text.data); ! if (retval) ! free(scratch); ! else ! *response = scratch; ! return retval; } Index: kdc/do_tgs_req.c =================================================================== RCS file: /cvs/krbdev/krb5/src/kdc/do_tgs_req.c,v retrieving revision 5.89 diff -c -r5.89 do_tgs_req.c *** kdc/do_tgs_req.c 22 May 2003 20:28:21 -0000 5.89 --- kdc/do_tgs_req.c 25 Apr 2005 22:02:56 -0000 *************** *** 722,728 **** retval = krb5_mk_error(kdc_context, &errpkt, scratch); free(errpkt.text.data); ! *response = scratch; return retval; } --- 722,732 ---- retval = krb5_mk_error(kdc_context, &errpkt, scratch); free(errpkt.text.data); ! if (retval) ! free(scratch); ! else ! *response = scratch; ! return retval; } Index: kdc/network.c =================================================================== RCS file: /cvs/krbdev/krb5/src/kdc/network.c,v retrieving revision 5.62 diff -c -r5.62 network.c *** kdc/network.c 24 Sep 2004 02:21:47 -0000 5.62 --- kdc/network.c 25 Apr 2005 22:02:56 -0000 *************** *** 722,727 **** --- 722,728 ---- char pktbuf[MAX_DGRAM_SIZE]; int port_fd = conn->fd; + response = NULL; saddr_len = sizeof(saddr); cc = recvfrom(port_fd, pktbuf, sizeof(pktbuf), 0, (struct sockaddr *)&saddr, &saddr_len); Index: lib/krb5/krb/unparse.c =================================================================== RCS file: /cvs/krbdev/krb5/src/lib/krb5/krb/unparse.c,v retrieving revision 5.33.8.1 diff -c -r5.33.8.1 unparse.c *** lib/krb5/krb/unparse.c 18 Jan 2005 17:57:32 -0000 5.33.8.1 --- lib/krb5/krb/unparse.c 25 Apr 2005 22:02:56 -0000 *************** *** 91,96 **** --- 91,98 ---- totalsize++; totalsize++; /* This is for the separator */ } + if (nelem == 0) + totalsize++; /* * Allocate space for the ascii string; if space has been