The branch, v3-2-test has been updated
       via  e489f3d988feafe35b486b31a9e60c2399e6a6e7 (commit)
       via  fcd35232e111f9b046ae35d939d08c29d0d43438 (commit)
      from  c4f7bee9238db536a7d5215cebb0bf37f757dfad (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit e489f3d988feafe35b486b31a9e60c2399e6a6e7
Author: Michael Adam <[EMAIL PROTECTED]>
Date:   Wed Apr 23 14:55:51 2008 +0200

    winbindd_cache: simplify logic in new key length check for UA keys.
    
    This reduces indentation by combining common code paths,
    and wraps long lines.
    
    Holger: sorry, I could not resist. I think it is much easier to
    understand what is going on when we only have one check and
    determine the max allowed key length in advance.
    
    Michael

commit fcd35232e111f9b046ae35d939d08c29d0d43438
Author: Holger Hetterich <[EMAIL PROTECTED]>
Date:   Fri Apr 11 14:02:19 2008 +0200

    winbindd_cache: recognize and allow longer UA keys
    
    UA keys consist of a potientally large number of concatenated SID strings 
which
    can grow much larger than 1024 bytes in complex environments. We catch 
those keys
    and allow them exclusivly to be larger.

-----------------------------------------------------------------------

Summary of changes:
 source/winbindd/winbindd_cache.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/winbindd/winbindd_cache.c b/source/winbindd/winbindd_cache.c
index ddb0ab3..0203381 100644
--- a/source/winbindd/winbindd_cache.c
+++ b/source/winbindd/winbindd_cache.c
@@ -3348,12 +3348,17 @@ struct key_val_struct {
 static int cache_traverse_validate_fn(TDB_CONTEXT *the_tdb, TDB_DATA kbuf, 
TDB_DATA dbuf, void *state)
 {
        int i;
+       unsigned int max_key_len = 1024;
        struct tdb_validation_status *v_state = (struct tdb_validation_status 
*)state;
 
        /* Paranoia check. */
-       if (kbuf.dsize > 1024) {
-               DEBUG(0,("cache_traverse_validate_fn: key length too large (%u) 
> 1024\n\n",
-                               (unsigned int)kbuf.dsize ));
+       if (strncmp("UA/", (const char *)kbuf.dptr, 3) == 0) {
+               max_key_len = 1024 * 1024;
+       }
+       if (kbuf.dsize > max_key_len) {
+               DEBUG(0, ("cache_traverse_validate_fn: key length too large: "
+                         "(%u) > (%u)\n\n",
+                         (unsigned int)kbuf.dsize, (unsigned int)max_key_len));
                return 1;
        }
 


-- 
Samba Shared Repository

Reply via email to