From: Matthias Dieter Wallnöfer Date: Tue, 9 Sep 2008 15:44:41 +0000 (+0200) Subject: Fix for the empty string (REG_SZ) problem X-Git-Tag: samba-4.0.0alpha6~799 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=16ab396d526546c2a55114cbac0e779aa6420601;p=thirdparty%2Fsamba.git Fix for the empty string (REG_SZ) problem I enhanced the "utf8_push" function, who finally accepts now also the char sequence "" with length 1 as valid UTF8 string. --- diff --git a/source4/lib/charset/iconv.c b/source4/lib/charset/iconv.c index d4f930b4622..9b15cfb3cca 100644 --- a/source4/lib/charset/iconv.c +++ b/source4/lib/charset/iconv.c @@ -600,6 +600,14 @@ static size_t utf8_push(void *cd, const char **inbuf, size_t *inbytesleft, uint8_t *c = (uint8_t *)*outbuf; const uint8_t *uc = (const uint8_t *)*inbuf; + /* Special case: Windows (e.g. "regedit") also expects an empty buffer + with length 1 as a valid empty UTF8 string */ + if (in_left == 1 && uc[0] == 0 && out_left >= 1) { + c[0] = uc[0]; + in_left -= 1; + out_left -= 1; + } + while (in_left >= 2 && out_left >= 1) { unsigned int codepoint;