samdb: Fix CID 1034910 Dereference before null check
authorVolker Lendecke <vl@samba.org>
Sun, 18 Aug 2013 19:37:56 +0000 (19:37 +0000)
committerAndrew Bartlett <abartlet@samba.org>
Sun, 18 Aug 2013 23:08:17 +0000 (11:08 +1200)
strncmp("tdb://", secrets_ldb, 6) dereferences secrets_ldb. Check for
NULL before that.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/dsdb/samdb/ldb_modules/secrets_tdb_sync.c

index e3d8485c611b2962ad9c04bbde944f4466128775..284aa1b6e2d09d6fe32e8964df1afc0ae8db59d4 100644 (file)
@@ -489,12 +489,12 @@ static int secrets_tdb_sync_init(struct ldb_module *module)
        ldb_module_set_private(module, data);
 
        secrets_ldb = (const char *)ldb_get_opaque(ldb, "ldb_url");
-       if (strncmp("tdb://", secrets_ldb, 6) == 0) {
-               secrets_ldb += 6;
-       }
        if (!secrets_ldb) {
                return ldb_operr(ldb);
        }
+       if (strncmp("tdb://", secrets_ldb, 6) == 0) {
+               secrets_ldb += 6;
+       }
        private_dir = talloc_strdup(data, secrets_ldb);
        p = strrchr(private_dir, '/');
        if (p) {