[31073] in CVS-changelog-for-Kerberos-V5

home help back first fref pref prev next nref lref last post

krb5 commit: Support larger RADIUS attributes in libkrad

daemon@ATHENA.MIT.EDU (Greg Hudson)
Wed Nov 10 15:59:27 2021

Date: Wed, 10 Nov 2021 15:58:53 -0500
From: Greg Hudson <ghudson@mit.edu>
Message-ID: <202111102058.1AAKwrWJ021217@drugstore.mit.edu>
To: <cvs-krb5@mit.edu>
MIME-Version: 1.0
Reply-To: krbdev@mit.edu
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu

https://github.com/krb5/krb5/commit/f35077bfc570205092eca2a9d44e50ce265622f4
commit f35077bfc570205092eca2a9d44e50ce265622f4
Author: Sumit Bose <sbose@redhat.com>
Date:   Mon Nov 8 17:48:50 2021 +0100

    Support larger RADIUS attributes in libkrad
    
    In kr_attrset_decode(), explicitly treat the length byte as unsigned.
    Otherwise attributes longer than 125 characters will be rejected with
    EBADMSG.
    
    Add a 253-character-long NAS-Identifier attribute to the tests to make
    sure that attributes with the maximal number of characters are working
    as expected.
    
    [ghudson@mit.edu: used uint8_t cast per current practices; edited
    commit message]
    
    ticket: 9036 (new)

 src/lib/krad/attrset.c  |    2 +-
 src/lib/krad/t_packet.c |   13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/src/lib/krad/attrset.c b/src/lib/krad/attrset.c
index 03c6137..f309f15 100644
--- a/src/lib/krad/attrset.c
+++ b/src/lib/krad/attrset.c
@@ -217,7 +217,7 @@ kr_attrset_decode(krb5_context ctx, const krb5_data *in, const char *secret,
 
     for (i = 0; i + 2 < in->length; ) {
         type = in->data[i++];
-        tmp = make_data(&in->data[i + 1], in->data[i] - 2);
+        tmp = make_data(&in->data[i + 1], (uint8_t)in->data[i] - 2);
         i += tmp.length + 1;
 
         retval = (in->length < i) ? EBADMSG : 0;
diff --git a/src/lib/krad/t_packet.c b/src/lib/krad/t_packet.c
index 0a92e9c..c224891 100644
--- a/src/lib/krad/t_packet.c
+++ b/src/lib/krad/t_packet.c
@@ -57,6 +57,14 @@ make_packet(krb5_context ctx, const krb5_data *username,
     krb5_error_code retval;
     const krb5_data *data;
     int i = 0;
+    krb5_data nas_id;
+
+    nas_id = string2data("12345678901234567890123456789012345678901234567890"
+                         "12345678901234567890123456789012345678901234567890"
+                         "12345678901234567890123456789012345678901234567890"
+                         "12345678901234567890123456789012345678901234567890"
+                         "12345678901234567890123456789012345678901234567890"
+                         "123");
 
     retval = krad_attrset_new(ctx, &set);
     if (retval != 0)
@@ -71,6 +79,11 @@ make_packet(krb5_context ctx, const krb5_data *username,
     if (retval != 0)
         goto out;
 
+    retval = krad_attrset_add(set, krad_attr_name2num("NAS-Identifier"),
+                              &nas_id);
+    if (retval != 0)
+        goto out;
+
     retval = krad_packet_new_request(ctx, "foo",
                                      krad_code_name2num("Access-Request"),
                                      set, iterator, &i, &tmp);
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5

home help back first fref pref prev next nref lref last post