Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/crypto/dist/heimdal/kadmin don't blindly trust rlen; from He...



details:   https://anonhg.NetBSD.org/src/rev/b1d71d5dbaa1
branches:  trunk
changeset: 538498:b1d71d5dbaa1
user:      joda <joda%NetBSD.org@localhost>
date:      Mon Oct 21 19:39:51 2002 +0000

description:
don't blindly trust rlen; from Heimdal 0.5.1

diffstat:

 crypto/dist/heimdal/kadmin/version4.c |  9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diffs (26 lines):

diff -r 5a58b5dd2af8 -r b1d71d5dbaa1 crypto/dist/heimdal/kadmin/version4.c
--- a/crypto/dist/heimdal/kadmin/version4.c     Mon Oct 21 18:09:18 2002 +0000
+++ b/crypto/dist/heimdal/kadmin/version4.c     Mon Oct 21 19:39:51 2002 +0000
@@ -42,7 +42,7 @@
 #include <kadm_err.h>
 
 __RCSID("$Heimdal: version4.c,v 1.26 2002/09/10 15:20:46 joda Exp $"
-        "$NetBSD: version4.c,v 1.1.1.4 2002/09/12 12:41:39 joda Exp $");
+        "$NetBSD: version4.c,v 1.2 2002/10/21 19:39:51 joda Exp $");
 
 #define KADM_NO_OPCODE -1
 #define KADM_NO_ENCRYPT -2
@@ -823,6 +823,13 @@
     off += _krb5_get_int(msg + off, &rlen, 4);
     memset(&authent, 0, sizeof(authent));
     authent.length = message.length - rlen - KADM_VERSIZE - 4;
+
+    if(authent.length >= MAX_KTXT_LEN) {
+       krb5_warnx(context, "received bad rlen (%lu)", (unsigned long)rlen);
+       make_you_loose_packet (KADM_LENGTH_ERROR, reply);
+       return;
+    }
+
     memcpy(authent.dat, (char*)msg + off, authent.length);
     off += authent.length;
     



Home | Main Index | Thread Index | Old Index