From 1fcbcbb486e7c599b11872f003ae213610ea09e4 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Wed, 9 Apr 2008 15:36:55 +0200 Subject: charcnv: add talloc_strdup_lower() - talloc variant of strdup_lower(). Michael (This used to be commit 5f6c730cbeddd1ac2f515bd985c08ceb4ca9bc47) --- source3/lib/charcnv.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/source3/lib/charcnv.c b/source3/lib/charcnv.c index d11620ecd7..69d1db0e48 100644 --- a/source3/lib/charcnv.c +++ b/source3/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)) -- cgit