s3:net idmap: fix error reporting in net_idmap_dbfile()
authorMichael Adam <obnox@samba.org>
Tue, 8 Feb 2011 22:16:31 +0000 (23:16 +0100)
committerMichael Adam <obnox@samba.org>
Wed, 9 Feb 2011 13:00:34 +0000 (14:00 +0100)
The last case which results in dbfile == NULL is not an
out of memory case but means no --db has been specified
and the idmap backend is not supported for auto-determining
the idmap tdb file.

source3/utils/net_idmap.c

index 525ca951a929493df156309b71aa71bec440b9ec..42f1172ad2975445d6c4a0dfa3f511311582aab4 100644 (file)
@@ -61,14 +61,23 @@ static const char* net_idmap_dbfile(struct net_context *c)
 
        if (c->opt_db != NULL) {
                dbfile = talloc_strdup(talloc_tos(), c->opt_db);
+               if (dbfile == NULL) {
+                       d_fprintf(stderr, _("Out of memory!\n"));
+               }
        } else if (strequal(lp_idmap_backend(), "tdb")) {
                dbfile = state_path("winbindd_idmap.tdb");
+               if (dbfile == NULL) {
+                       d_fprintf(stderr, _("Out of memory!\n"));
+               }
        } else if (strequal(lp_idmap_backend(), "tdb2")) {
                dbfile = lp_parm_talloc_string(-1, "tdb", "idmap2.tdb", NULL);
                if (dbfile == NULL) {
                        dbfile = talloc_asprintf(talloc_tos(), "%s/idmap2.tdb",
                                                 lp_private_dir());
                }
+               if (dbfile == NULL) {
+                       d_fprintf(stderr, _("Out of memory!\n"));
+               }
        } else {
                char* backend = talloc_strdup(talloc_tos(), lp_idmap_backend());
                char* args = strchr(backend, ':');
@@ -81,9 +90,7 @@ static const char* net_idmap_dbfile(struct net_context *c)
 
                talloc_free(backend);
        }
-       if (dbfile == NULL) {
-               DEBUG(0,("Out of memory\n"));
-       }
+
        return dbfile;
 }