From 5f6c730cbeddd1ac2f515bd985c08ceb4ca9bc47 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Wed, 9 Apr 2008 15:36:55 +0200 Subject: [PATCH] charcnv: add talloc_strdup_lower() - talloc variant of strdup_lower(). Michael --- source/lib/charcnv.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/source/lib/charcnv.c b/source/lib/charcnv.c index d11620ecd77..69d1db0e48c 100644 --- a/source/lib/charcnv.c +++ b/source/lib/charcnv.c @@ -945,6 +945,32 @@ char *strdup_lower(const char *s) return out_buffer; } +char *talloc_strdup_lower(TALLOC_CTX *ctx, const char *s) +{ + size_t size; + smb_ucs2_t *buffer = NULL; + char *out_buffer; + + size = push_ucs2_talloc(ctx, &buffer, s); + if (size == -1 || !buffer) { + TALLOC_FREE(buffer); + return NULL; + } + + strlower_w(buffer); + + size = pull_ucs2_talloc(ctx, &out_buffer, buffer); + TALLOC_FREE(buffer); + + if (size == (size_t)-1) { + TALLOC_FREE(out_buffer); + return NULL; + } + + return out_buffer; +} + + size_t ucs2_align(const void *base_ptr, const void *p, int flags) { if (flags & (STR_NOALIGN|STR_ASCII)) -- 2.47.3