winbindd_cache: simplify logic in new key length check for UA keys.
authorMichael Adam <obnox@samba.org>
Wed, 23 Apr 2008 12:55:51 +0000 (14:55 +0200)
committerMichael Adam <obnox@samba.org>
Wed, 23 Apr 2008 12:55:51 +0000 (14:55 +0200)
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
(This used to be commit e489f3d988feafe35b486b31a9e60c2399e6a6e7)

source3/winbindd/winbindd_cache.c

index 5abd207e793c52330d238d75151d4a3259119f3b..020338165ba79cfc1e215b2336110f0fbf9db85a 100644 (file)
@@ -3348,23 +3348,18 @@ 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) {
-               if (strncmp("UA/", (const char *)kbuf.dptr, 3) == 0) {
-                       unsigned int max_key_len = 1024*1024;
-                       if (kbuf.dsize > max_key_len) {
-                               DEBUG(0,("cache_traverse_validate_fn: UA key to large (%u) > (%u)\n\n",
-                                        (unsigned int)kbuf.dsize, (unsigned int)max_key_len ));
-                               return 1;
-                       } 
-               } else  {
-
-                               DEBUG(0,("cache_traverse_validate_fn: key length too large (%u) > 1024\n\n",
-                                        (unsigned int)kbuf.dsize ));
-                               return 1;
-                       }
+       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;
        }
 
        for (i = 0; key_val[i].keyname; i++) {