diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2010-09-22 11:04:26 -0400 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2010-09-23 13:00:42 -0400 |
commit | cf3be5c32a7ddf878896da86ce5f04be7a3337ba (patch) | |
tree | 457832724dee88e1a2410550cab2d50895b85600 | |
parent | 538a5fd15c7acbc08e33b72b480c2304902a5bae (diff) | |
download | sssd-cf3be5c32a7ddf878896da86ce5f04be7a3337ba.tar.gz sssd-cf3be5c32a7ddf878896da86ce5f04be7a3337ba.tar.xz sssd-cf3be5c32a7ddf878896da86ce5f04be7a3337ba.zip |
Fix sysdb_group_dn_name
-rw-r--r-- | src/db/sysdb.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/db/sysdb.c b/src/db/sysdb.c index 638ac69e3..78af9cc53 100644 --- a/src/db/sysdb.c +++ b/src/db/sysdb.c @@ -56,6 +56,7 @@ errno_t sysdb_group_dn_name(struct sysdb_ctx *ctx, void *memctx, const char *_dn, char **_name) { struct ldb_dn *dn; + const struct ldb_val *val; *_name = NULL; dn = ldb_dn_new_fmt(memctx, ctx->ldb, "%s", _dn); @@ -63,7 +64,14 @@ errno_t sysdb_group_dn_name(struct sysdb_ctx *ctx, void *memctx, return ENOMEM; } - *_name = talloc_strdup(memctx, ldb_dn_get_rdn_name(dn)); + val = ldb_dn_get_rdn_val(dn); + if (val == NULL) { + talloc_zfree(dn); + return EINVAL; + } + + *_name = talloc_strndup(memctx, (char *) val->data, val->length); + if (!*_name) { talloc_zfree(dn); return ENOMEM; |