ldb:ldbedit tool - don't forget about the "do_edit" result code
authorMatthias Dieter Wallnöfer <mdw@samba.org>
Sat, 5 Feb 2011 12:19:56 +0000 (13:19 +0100)
committerMatthias Dieter Wallnöfer <mdw@samba.org>
Wed, 9 Feb 2011 17:59:19 +0000 (18:59 +0100)
Use it for computing the program exit code. The "result" has not to be
free'd explicitly since it's a child by "ldb" which itself is child by
"mem_ctx".

source4/lib/ldb/tools/ldbedit.c

index ecdb4d7f621b855ca45bdd0a0b7f0825028c6feb..09c59cf6cda37a710deb234da35183788e915dc2 100644 (file)
@@ -343,20 +343,13 @@ int main(int argc, const char **argv)
 
        if (result->count == 0) {
                printf("no matching records - cannot edit\n");
-               return 0;
+               talloc_free(mem_ctx);
+               return LDB_SUCCESS;
        }
 
-       do_edit(ldb, result->msgs, result->count, options->editor);
-
-       if (result) {
-               ret = talloc_free(result);
-               if (ret == -1) {
-                       fprintf(stderr, "talloc_free failed\n");
-                       exit(1);
-               }
-       }
+       ret = do_edit(ldb, result->msgs, result->count, options->editor);
 
        talloc_free(mem_ctx);
 
-       return 0;
+       return ret == 0 ? LDB_SUCCESS : LDB_ERR_OPERATIONS_ERROR;
 }