* do_as_req.c (process_as_req), do_tgs_req (process_tgs_req): Use
authorTheodore Tso <tytso@mit.edu>
Fri, 30 May 1997 01:24:01 +0000 (01:24 +0000)
committerTheodore Tso <tytso@mit.edu>
Fri, 30 May 1997 01:24:01 +0000 (01:24 +0000)
limit_string() to make sure the length of cname and sname
are reasonable.

* kdc_util.c (limit_string): New function which limits the strings
that will end up in log files to "reasonable" lengths.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@10091 dc483132-0cff-0310-8789-dd5450dbe970

src/kdc/ChangeLog
src/kdc/do_as_req.c
src/kdc/do_tgs_req.c
src/kdc/kdc_util.c
src/kdc/kdc_util.h

index a9190212b02202964cc56f8fcc09df2b71decf82..dd837ead17391d24626a084c7d591c4a2d210e1a 100644 (file)
@@ -1,3 +1,12 @@
+Thu May 29 21:08:24 1997  Theodore Y. Ts'o  <tytso@mit.edu>
+
+       * do_as_req.c (process_as_req), do_tgs_req (process_tgs_req): Use
+               limit_string() to make sure the length of cname and sname
+               are reasonable.
+
+       * kdc_util.c (limit_string): New function which limits the strings
+               that will end up in log files to "reasonable" lengths.
+
 Tue Feb 18 09:56:16 1997  Ezra Peisach  <epeisach@mit.edu>
 
        * kerberos_v4.c: Remove include of krb4-proto.h
index 504f0077a51e6d3ebdb3e4d87f353000c646f94e..5d87865b2d3ff1d32e32792f1ee259f9f937d17c 100644 (file)
@@ -99,6 +99,7 @@ krb5_data **response;                 /* filled in with a response packet */
        status = "UNPARSING_CLIENT";
        goto errout;
     }
+    limit_string(cname);
     if (!request->server) {
        status = "NULL_SERVER";
        errcode = KRB5KDC_ERR_S_PRINCIPAL_UNKNOWN;
@@ -108,6 +109,7 @@ krb5_data **response;                       /* filled in with a response packet */
        status = "UNPARSING_SERVER";
        goto errout;
     }
+    limit_string(sname);
     
     c_nprincs = 1;
     if ((errcode = krb5_db_get_principal(kdc_context, request->client,
index f2d7d93f19020934619ccefa37aa759daf62edf8..a4c5502421f28c78888fc3ab12bcd8ec9231a110 100644 (file)
@@ -111,6 +111,7 @@ krb5_data **response;                       /* filled in with a response packet */
        status = "UNPARSING SERVER";
        goto cleanup;
     }
+    limit_string(sname);
 
    /* errcode = kdc_process_tgs_req(request, from, pkt, &req_authdat); */
     errcode = kdc_process_tgs_req(request, from, pkt, &header_ticket, &subkey);
@@ -123,7 +124,8 @@ krb5_data **response;                       /* filled in with a response packet */
        errcode = errcode2;
        goto cleanup;
     }
-
+    limit_string(cname);
+    
     if (errcode) {
        status = "PROCESS_TGS";
        goto cleanup;
index 60670ff8ec072fc9f7d36c0c44c0f792a809c40f..9211b186fb636e1bf9d41ba225beb95f2a5fd30b 100644 (file)
@@ -912,7 +912,7 @@ krb5_data *data;
 {
     unsigned char *estream;    /* end of stream */
     int classes;               /* # classes seen so far this level */
-    int levels = 0;            /* levels seen so far */
+    unsigned int levels = 0;           /* levels seen so far */
     int lastlevel = 1000;       /* last level seen */
     int length;                        /* various lengths */
     int tag;                   /* tag number */
@@ -1375,8 +1375,23 @@ get_salt_from_key(context, client, client_key, salt)
     return 0;
 }
 
+/*
+ * Limit strings to a "reasonable" length to prevent crowding out of
+ * other useful information in the log entry
+ */
+#define NAME_LENGTH_LIMIT 128
 
-    
-   
-    
-    
+void limit_string(char *name)
+{
+       int     i;
+
+       if (strlen(name) < NAME_LENGTH_LIMIT)
+               return;
+
+       i = NAME_LENGTH_LIMIT-4;
+       name[i++] = '.';
+       name[i++] = '.';
+       name[i++] = '.';
+       name[i] = '\0';
+       return;
+}
index b869f6f8a5df798545c197328ae99f2adaf99788..27d62d43b72896d0abfebdeb9134d31568dacb21 100644 (file)
@@ -93,6 +93,8 @@ krb5_error_code
 get_salt_from_key PROTOTYPE((krb5_context, krb5_principal,
                             krb5_key_data *, krb5_data *));
 
+void limit_string PROTOTYPE((char *name));
+
 /* do_as_req.c */
 krb5_error_code process_as_req PROTOTYPE((krb5_kdc_req *,
                                          const krb5_fulladdr *,