summaryrefslogtreecommitdiff
path: root/source3/lib/fstring.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2011-03-30 13:08:31 -0700
committerJeremy Allison <jra@samba.org>2011-03-30 23:59:37 +0200
commitc109a70531de72eef30a695248b91704bd0c7c24 (patch)
tree29182afa1ae334e8aee0e71e59aa1a0e5de65f6a /source3/lib/fstring.c
parent9ede19fdccaf09303012208129a093197403ef2c (diff)
downloadsamba-c109a70531de72eef30a695248b91704bd0c7c24.tar.gz
samba-c109a70531de72eef30a695248b91704bd0c7c24.tar.bz2
samba-c109a70531de72eef30a695248b91704bd0c7c24.zip
Fix convert_string() to take a *converted_size arg. and return a bool.
Makes these interfaces much harder to misuse and easier to ensure error checking. Autobuild-User: Jeremy Allison <jra@samba.org> Autobuild-Date: Wed Mar 30 23:59:37 CEST 2011 on sn-devel-104
Diffstat (limited to 'source3/lib/fstring.c')
-rw-r--r--source3/lib/fstring.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/source3/lib/fstring.c b/source3/lib/fstring.c
index 50b0765f92..b0a30b52cc 100644
--- a/source3/lib/fstring.c
+++ b/source3/lib/fstring.c
@@ -75,7 +75,8 @@ size_t pull_ascii_nstring(char *dest, size_t dest_len, const void *src)
static size_t push_utf8(void *dest, const char *src, size_t dest_len, int flags)
{
size_t src_len = 0;
- size_t ret;
+ size_t size = 0;
+ bool ret;
char *tmpbuf = NULL;
if (dest_len == (size_t)-1) {
@@ -97,9 +98,9 @@ static size_t push_utf8(void *dest, const char *src, size_t dest_len, int flags)
src_len++;
}
- ret = convert_string(CH_UNIX, CH_UTF8, src, src_len, dest, dest_len);
+ ret = convert_string(CH_UNIX, CH_UTF8, src, src_len, dest, dest_len, &size);
TALLOC_FREE(tmpbuf);
- return ret;
+ return ret ? size : (size_t)-1;
}
size_t push_utf8_fstring(void *dest, const char *src)