[SSSD] [PATCH] SYSDB: Return errno, not ldb error code
Lukas Slebodnik
lslebodn at redhat.com
Mon Aug 18 06:11:29 UTC 2014
On (17/08/14 20:45), Jakub Hrozek wrote:
>Hi,
>
>for one of my patches I tried to use ldb permissive modification before
>realising it's not the best approach. At least I found this little bug
>in the sysdb code.
>From de9f9376b6d5ed098a268a7a1f5d04bca1c8d96f Mon Sep 17 00:00:00 2001
>From: Jakub Hrozek <jhrozek at redhat.com>
>Date: Sat, 16 Aug 2014 19:41:40 +0200
>Subject: [PATCH] SYSDB: Return errno, not ldb error code
>
>---
> src/db/sysdb_ops.c | 3 +++
> 1 file changed, 3 insertions(+)
>
>diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c
>index 252097f28b7634d13d91392b63abdf0640bcfa19..f4d48e89c49879ea282c9e7637e8255028e95758 100644
>--- a/src/db/sysdb_ops.c
>+++ b/src/db/sysdb_ops.c
>@@ -159,6 +159,9 @@ int sss_ldb_modify_permissive(struct ldb_context *ldb,
>
> talloc_free(req);
>
>+ if (ret) {
>+ ret = sysdb_error_to_errno(ret);
>+ }
> return ret;
> }
NACK
Current code expect LDB error codes to be returned from
sss_ldb_modify_permissive. See src/db/sysdb_upgrade.c.
But you can write doxygen comment for this function ;-)
sh$ git grep -A3 sss_ldb_modify_permissive
src/db/sysdb.h:int sss_ldb_modify_permissive(struct ldb_context *ldb,
src/db/sysdb.h- struct ldb_message *msg);
src/db/sysdb.h-
src/db/sysdb.h-/* Delete Entry */
--
src/db/sysdb_ops.c:int sss_ldb_modify_permissive(struct ldb_context *ldb,
src/db/sysdb_ops.c- struct ldb_message *msg)
src/db/sysdb_ops.c-{
src/db/sysdb_ops.c- struct ldb_request *req;
--
src/db/sysdb_ops.c: ret = sss_ldb_modify_permissive(sysdb->ldb, msg);
src/db/sysdb_ops.c- ret = sysdb_error_to_errno(ret);
src/db/sysdb_ops.c- if (ret != EOK) {
src/db/sysdb_ops.c- goto done;
--
src/db/sysdb_upgrade.c: ret = sss_ldb_modify_permissive(sysdb->ldb, msg);
src/db/sysdb_upgrade.c- talloc_zfree(msg);
src/db/sysdb_upgrade.c- if (ret == LDB_ERR_ATTRIBUTE_OR_VALUE_EXISTS) {
src/db/sysdb_upgrade.c- /* If we failed adding the ghost user(s) because the values already
--
src/db/sysdb_upgrade.c: ret = sss_ldb_modify_permissive(sysdb->ldb, msg);
src/db/sysdb_upgrade.c- talloc_zfree(msg);
src/db/sysdb_upgrade.c- if (ret != LDB_SUCCESS) {
src/db/sysdb_upgrade.c- goto done;
LS
More information about the sssd-devel
mailing list