summaryrefslogtreecommitdiffstats
path: root/crypto/kerberosIV/lib/krb/create_death_packet.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/kerberosIV/lib/krb/create_death_packet.c')
-rw-r--r--crypto/kerberosIV/lib/krb/create_death_packet.c30
1 files changed, 24 insertions, 6 deletions
diff --git a/crypto/kerberosIV/lib/krb/create_death_packet.c b/crypto/kerberosIV/lib/krb/create_death_packet.c
index f74ba30..ddc4c9a 100644
--- a/crypto/kerberosIV/lib/krb/create_death_packet.c
+++ b/crypto/kerberosIV/lib/krb/create_death_packet.c
@@ -38,7 +38,7 @@
#include "krb_locl.h"
-RCSID("$Id: create_death_packet.c,v 1.8 1997/04/01 08:18:21 joda Exp $");
+RCSID("$Id: create_death_packet.c,v 1.9 1998/06/09 19:25:17 joda Exp $");
/*
* This routine creates a packet to type AUTH_MSG_DIE which is sent to
@@ -74,11 +74,29 @@ krb_create_death_packet(char *a_name)
KTEXT pkt = &pkt_st;
unsigned char *p = pkt->dat;
-
- p += krb_put_int(KRB_PROT_VERSION, p, 1);
- p += krb_put_int(AUTH_MSG_DIE, p, 1);
-
- p += krb_put_string(a_name, p);
+ int tmp;
+ int rem = sizeof(pkt->dat);
+
+ pkt->length = 0;
+
+ tmp = krb_put_int(KRB_PROT_VERSION, p, rem, 1);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_int(AUTH_MSG_DIE, p, rem, 1);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
+
+ tmp = krb_put_string(a_name, p, rem);
+ if (tmp < 0)
+ return NULL;
+ p += tmp;
+ rem -= tmp;
+
pkt->length = p - pkt->dat;
return pkt;
}
OpenPOWER on IntegriCloud