[SSSD] [PATCHES] SYSDB ghost fix

Simo Sorce simo at redhat.com
Mon Jan 7 14:08:06 UTC 2013


On Mon, 2013-01-07 at 15:01 +0100, Ondrej Kos wrote:
> tps://fedorahosted.org/sssd/ticket/1714
> 
> The attempt to delete all ghosts for users name and aliases was
> failing,
> resulting into failure of whole user-add operation. In permissive
> mode,
> the attempts to delete non-existent entries are not interpreted as
> error.

Comments inline.

> diff --git a/src/db/sysdb_ops.c b/src/db/sysdb_ops.c
> index
> 4bbc76c5c39501a4d878a1d41faa81919a23228f..6fb9b1d1e17f15710e3e1cff6577865525391699 100644
> --- a/src/db/sysdb_ops.c
> +++ b/src/db/sysdb_ops.c
> @@ -74,6 +74,38 @@ static uint32_t get_attr_as_uint32(struct
> ldb_message *msg, const char *attr)
>      return l;
>  }
>  
> +errno_t
> +sss_ldb_modify_permissive(struct ldb_context *ldb,
> +               struct ldb_message *msg)

Do not \n after errno_t
Make it a static function.
Properly align the second argument.
You are not returing errno_t here you are returning LDB errors, so just
use 'int'.

> +{
> +    struct ldb_request *req;
> +    errno_t ret = EOK;

'int' not errno_t here.

Whole indent one tab too much after this line.

> +       ret = ldb_build_mod_req(&req, ldb, ldb,
> +                            msg,
> +                            NULL,
> +                            NULL,
> +                            ldb_op_default_callback,
> +                            NULL);

Also misaligned arguments.

> +
> +       if (ret != LDB_SUCCESS) return ret;
> +
> +       ret = ldb_request_add_control(req,
> LDB_CONTROL_PERMISSIVE_MODIFY_OID, false, NULL);

Split this line so iut doesn't wrap on 80 please

> +       if (ret != LDB_SUCCESS) {
> +               talloc_free(req);
> +               return ret;
> +       }

Indent issue here too in ineer block.

> +
> +       ret = ldb_request(ldb, req);
> +       if (ret == LDB_SUCCESS) {
> +               ret = ldb_wait(req->handle, LDB_WAIT_ALL);
> +       }

Again indent in inner block.

> +       talloc_free(req);
> +
> +    return ret;
> +}
> + 

Yeah copy&paste from samba code is not straightforward :-)

Once you fix these issues you get an ACK.

Simo.

-- 
Simo Sorce * Red Hat, Inc * New York




More information about the sssd-devel mailing list