From 37eb0d6c74ce158b1cc268cea446b33789550048 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Sat, 23 Jun 2001 07:22:16 +0000 Subject: Added other_safe_chars to alpha_strcpy(). Needs testing but is a better fix for the problem. Jeremy. (This used to be commit e059fffd03a1382fb2b7059b6de369d9fc765a17) --- source3/lib/util_unistr.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source3/lib/util_unistr.c') diff --git a/source3/lib/util_unistr.c b/source3/lib/util_unistr.c index 7058665145..96aa62a283 100644 --- a/source3/lib/util_unistr.c +++ b/source3/lib/util_unistr.c @@ -1453,9 +1453,10 @@ BOOL str_is_all_w(const smb_ucs2_t *s,smb_ucs2_t c) maxlength is in ucs2 units. ********************************************************************/ -smb_ucs2_t *alpha_strcpy_w(smb_ucs2_t *dest, const smb_ucs2_t *src, size_t maxlength) +smb_ucs2_t *alpha_strcpy_w(smb_ucs2_t *dest, const smb_ucs2_t *src, const smb_ucs2_t *other_safe_chars, size_t maxlength) { size_t len, i; + smb_ucs2_t nullstr_w = (smb_ucs2_t)0; if (!dest) { DEBUG(0,("ERROR: NULL dest in alpha_strcpy_w\n")); @@ -1471,9 +1472,12 @@ smb_ucs2_t *alpha_strcpy_w(smb_ucs2_t *dest, const smb_ucs2_t *src, size_t maxle if (len >= maxlength) len = maxlength - 1; + if (!other_safe_chars) + other_safe_chars = &nullstr_w; + for(i = 0; i < len; i++) { smb_ucs2_t val = src[i]; - if(isupper_w(val) ||islower_w(val) || isdigit_w(val)) + if(isupper_w(val) ||islower_w(val) || isdigit_w(val) || strchr_w(other_safe_chars, val)) dest[i] = src[i]; else dest[i] = (smb_ucs2_t)'_'; -- cgit