38#include <gvm/base/logging.h>
41#define SMB_STRDUP(s) strdup (s)
49#define uint16 uint16_t
60#define G_LOG_DOMAIN "lib nasl"
70 size_t srclen,
void *dest,
size_t destlen,
71 bool allow_badcharcnv);
84 if (len1 == 0 || len1 == (
size_t) -1)
126 static int mapped_file;
128 const char *allowed =
".!#$%&'()_-@^`~";
145 for (i = 0; i < 128; i++)
152 for (; i < 0x10000; i++)
184 const char *ret = NULL;
193#if defined(HAVE_NL_LANGINFO) && defined(CODESET)
194 if (ret && !strcmp (ret,
"LOCALE"))
196 const char *ln = NULL;
199 setlocale (LC_ALL,
"");
201 ln = nl_langinfo (CODESET);
228 static int initialized =
False;
248 bool did_reload =
False;
290 g_message (
"init_iconv_ntlmssp: conv_handle"
291 " initialization failed");
326 size_t srclen,
void *dest,
size_t destlen,
331 const char *inbuf = (
const char *) src;
332 char *outbuf = (
char *) dest;
339 if (srclen == (
size_t) -1)
347 srclen = strlen ((
const char *) src) + 1;
360 if (retval == (
size_t) -1)
384 return destlen - o_len;
395 if (o_len == 0 || i_len == 0)
396 return destlen - o_len;
405 return destlen - o_len;
417 if (o_len == 0 || i_len == 0)
418 return destlen - o_len;
429 return destlen - o_len;
440 if (o_len == 0 || i_len == 0)
441 return destlen - o_len;
459 if (o_len == 0 || i_len == 0)
460 return destlen - o_len;
468 return destlen - o_len;
494 size_t srclen,
void *dest,
size_t destlen,
509 const unsigned char *p = (
const unsigned char *) src;
510 unsigned char *q = (
unsigned char *) dest;
511 size_t slen = srclen;
512 size_t dlen = destlen;
513 unsigned char lastp =
'\0';
519 if ((lastp = *p) <= 0x7f)
522 if (slen != (
size_t) -1)
533#ifdef BROKEN_UNICODE_COMPOSE_CHARACTERS
537 from, to, p, slen, q, dlen, allow_bad_conv);
538 if (ret == (
size_t) -1)
549 if (((slen != (
size_t) -1) && slen)
550 || ((slen == (
size_t) -1) && lastp))
559 const unsigned char *p = (
const unsigned char *) src;
560 unsigned char *q = (
unsigned char *) dest;
562 size_t slen = srclen;
563 size_t dlen = destlen;
564 unsigned char lastp =
'\0';
567 while (((slen == (
size_t) -1) || (slen >= 2)) && dlen)
569 if (((lastp = *p) <= 0x7f) && (p[1] == 0))
572 if (slen != (
size_t) -1)
584#ifdef BROKEN_UNICODE_COMPOSE_CHARACTERS
589 dlen, allow_bad_conv);
596 if (((slen != (
size_t) -1) && slen)
597 || ((slen == (
size_t) -1) && lastp))
606 const unsigned char *p = (
const unsigned char *) src;
607 unsigned char *q = (
unsigned char *) dest;
609 size_t slen = srclen;
610 size_t dlen = destlen;
611 unsigned char lastp =
'\0';
614 while (slen && (dlen >= 2))
616 if ((lastp = *p) <= 0x7F)
620 if (slen != (
size_t) -1)
631#ifdef BROKEN_UNICODE_COMPOSE_CHARACTERS
636 dlen, allow_bad_conv);
643 if (((slen != (
size_t) -1) && slen)
644 || ((slen == (
size_t) -1) && lastp))
652#ifdef BROKEN_UNICODE_COMPOSE_CHARACTERS
Unix SMB/CIFS implementation. SMB Byte handling.
#define SSVAL(buf, pos, val)
static smb_iconv_t conv_handles_ntlmssp[NUM_CHARSETS][NUM_CHARSETS]
static size_t strlen_w_ntlmssp(const uint16 *src)
static size_t convert_string_internal_ntlmssp(charset_t from, charset_t to, void const *src, size_t srclen, void *dest, size_t destlen, bool allow_bad_conv)
static bool conv_silent_ntlmssp
size_t convert_string_ntlmssp(charset_t from, charset_t to, void const *src, size_t srclen, void *dest, size_t destlen, bool allow_badcharcnv)
static uint8 * valid_table_ntlmssp
void init_iconv_ntlmssp(void)
static const char * charset_name_ntlmssp(charset_t ch)
static void init_valid_table_ntlmssp(void)
void lazy_initialize_conv_ntlmssp(void)
static int check_dos_char_slowly_ntlmssp(uint16 c)
static bool valid_table_use_unmap_ntlmssp
static char lp_failed_convert_char_ntlmssp(void)
int smb_iconv_close_ntlmssp(smb_iconv_t cd)
smb_iconv_t smb_iconv_open_ntlmssp(const char *tocode, const char *fromcode)
size_t smb_iconv_ntlmssp(smb_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
Unix SMB/CIFS implementation. iconv memory system include wrappers.
Unix SMB/CIFS implementation.
struct _smb_iconv_t * smb_iconv_t
#define COPY_UCS2_CHAR(dest, src)