summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source3/lib/charcnv.c3
-rw-r--r--source3/web/cgi.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/source3/lib/charcnv.c b/source3/lib/charcnv.c
index ebcceef8161..0e7d5241f4a 100644
--- a/source3/lib/charcnv.c
+++ b/source3/lib/charcnv.c
@@ -99,6 +99,9 @@ size_t convert_string(charset_t from, charset_t to,
static int initialised;
smb_iconv_t descriptor;
+ if (srclen == -1) srclen = strlen(src)+1;
+ if (destlen == -1) destlen = strlen(dest)+1;
+
if (!initialised) {
initialised = 1;
init_iconv();
diff --git a/source3/web/cgi.c b/source3/web/cgi.c
index 7b12bf57489..939b8f94cdc 100644
--- a/source3/web/cgi.c
+++ b/source3/web/cgi.c
@@ -221,13 +221,13 @@ void cgi_load_variables(void)
pstring dest;
convert_string(CH_DISPLAY, CH_UNIX,
- variables[i].name, strlen(variables[i].name),
+ variables[i].name, -1,
dest, sizeof(dest));
free(variables[i].name);
variables[i].name = strdup(dest);
convert_string(CH_DISPLAY, CH_UNIX,
- variables[i].value, strlen(variables[i].name),
+ variables[i].value, -1,
dest, sizeof(dest));
free(variables[i].value);
variables[i].value = strdup(dest);