From e36ec25b898ecba4e28b244683c57a4372731042 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Thu, 16 Sep 2010 14:05:35 -0400 Subject: Fix sysdb_group_dn_name --- src/db/sysdb.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/db') diff --git a/src/db/sysdb.c b/src/db/sysdb.c index 4e1243c0..5f002d84 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,13 @@ 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; -- cgit