summaryrefslogtreecommitdiff
path: root/lib/util/charset/charcnv.c
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2009-03-01 06:33:40 +0100
committerJelmer Vernooij <jelmer@samba.org>2009-03-01 06:33:40 +0100
commit9ffb6d2d9e78ed192b8215194b6328d03d1ddad3 (patch)
treefc76fb3e1d8d9e381559244440c6738574f6c21d /lib/util/charset/charcnv.c
parent79fc0ddaf44af1e31d7e6f2c6f576fd3c05e087d (diff)
downloadsamba-9ffb6d2d9e78ed192b8215194b6328d03d1ddad3.tar.gz
samba-9ffb6d2d9e78ed192b8215194b6328d03d1ddad3.tar.bz2
samba-9ffb6d2d9e78ed192b8215194b6328d03d1ddad3.zip
Add allow_badcharcnv argument to all conversion function, for
consistency with Samba 3.
Diffstat (limited to 'lib/util/charset/charcnv.c')
-rw-r--r--lib/util/charset/charcnv.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/util/charset/charcnv.c b/lib/util/charset/charcnv.c
index 1f3b1ac846..18be2bcac2 100644
--- a/lib/util/charset/charcnv.c
+++ b/lib/util/charset/charcnv.c
@@ -240,7 +240,7 @@ convert:
_PUBLIC_ ssize_t convert_string_convenience(struct smb_iconv_convenience *ic,
charset_t from, charset_t to,
void const *src, size_t srclen,
- void *dest, size_t destlen)
+ void *dest, size_t destlen, bool allow_badcharcnv)
{
size_t i_len, o_len;
size_t retval;
@@ -248,6 +248,10 @@ _PUBLIC_ ssize_t convert_string_convenience(struct smb_iconv_convenience *ic,
char* outbuf = (char*)dest;
smb_iconv_t descriptor;
+ if (allow_badcharcnv) {
+ return -1;
+ }
+
if (srclen == (size_t)-1)
srclen = strlen(inbuf)+1;
@@ -305,10 +309,13 @@ _PUBLIC_ ssize_t convert_string_talloc_convenience(TALLOC_CTX *ctx,
struct smb_iconv_convenience *ic,
charset_t from, charset_t to,
void const *src, size_t srclen,
- void **dest)
+ void **dest, bool allow_badcharcnv)
{
smb_iconv_t descriptor;
+ if (allow_badcharcnv)
+ return (size_t)-1;
+
*dest = NULL;
if (src == NULL || srclen == (size_t)-1 || srclen == 0)