summaryrefslogtreecommitdiff
path: root/source3/smbd/mangle.c
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2001-11-12 00:53:34 +0000
committerSimo Sorce <idra@samba.org>2001-11-12 00:53:34 +0000
commit84244244710790f2058ee90b2dc80e9c252841dd (patch)
tree34900507eeb6721b52d3a02ab9a7673c8615bec8 /source3/smbd/mangle.c
parent5abe3932cc9211263b2a93d58cdddb8de2d6f677 (diff)
downloadsamba-84244244710790f2058ee90b2dc80e9c252841dd.tar.gz
samba-84244244710790f2058ee90b2dc80e9c252841dd.tar.bz2
samba-84244244710790f2058ee90b2dc80e9c252841dd.zip
some bugfix and new functions,
modified mangle.c to use mosltly acnv_????() functions. this should make also build farm happy (This used to be commit 8bb5cb27c2012b8967482255d48a1b48d3acd9db)
Diffstat (limited to 'source3/smbd/mangle.c')
-rw-r--r--source3/smbd/mangle.c41
1 files changed, 10 insertions, 31 deletions
diff --git a/source3/smbd/mangle.c b/source3/smbd/mangle.c
index 44ffd155e4..1b7f9d0c05 100644
--- a/source3/smbd/mangle.c
+++ b/source3/smbd/mangle.c
@@ -437,13 +437,12 @@ smb_ucs2_t *mangle(const smb_ucs2_t *unmangled)
}
else /* FOUND */
{
- p = (smb_ucs2_t *)malloc(data.dsize*sizeof(smb_ucs2_t));
+ p = acnv_dosu2(data.dptr);
if (!p)
{
DEBUG(0,("mangle: out of memory!\n"));
goto done;
}
- dos_to_ucs2(p, data.dptr, data.dsize*sizeof(smb_ucs2_t));
}
if (ext)
@@ -491,18 +490,15 @@ char *dos_mangle(const char *dos_unmangled)
{
smb_ucs2_t *in, *out;
char *dos_mangled;
- size_t len;
if (!dos_unmangled || !*dos_unmangled) return NULL;
- len = (strlen(dos_unmangled) + 1) * sizeof(smb_ucs2_t);
- in = (smb_ucs2_t *)malloc(len);
+ in = acnv_dosu2(dos_unmangled);
if (!in)
{
DEBUG(0,("dos_mangle: out of memory!\n"));
return NULL;
}
- dos_to_ucs2(in, dos_unmangled, len);
out = mangle(in);
if (!out)
@@ -511,13 +507,12 @@ char *dos_mangle(const char *dos_unmangled)
return NULL;
}
- dos_mangled = (char *)malloc(PSTRING_LEN);
+ dos_mangled = acnv_u2dos(out);
if (!dos_mangled)
{
DEBUG(0,("dos_mangle: out of memory!\n"));
goto done;
}
- ucs2_to_dos (dos_mangled, out, PSTRING_LEN);
done:
SAFE_FREE(in);
@@ -529,18 +524,15 @@ char *dos_unmangle(const char *dos_mangled)
{
smb_ucs2_t *in, *out;
char *dos_unmangled;
- size_t len;
if (!dos_mangled || !*dos_mangled) return NULL;
- len = (strlen(dos_mangled) + 1) * sizeof(smb_ucs2_t);
- in = (smb_ucs2_t *)malloc(len);
+ in = acnv_dosu2(dos_mangled);
if (!in)
{
DEBUG(0,("dos_unmangle: out of memory!\n"));
return NULL;
}
- dos_to_ucs2(in, dos_mangled, len);
out = mangle(in);
if (!out)
@@ -549,13 +541,12 @@ char *dos_unmangle(const char *dos_mangled)
return NULL;
}
- dos_unmangled = (char *)malloc(PSTRING_LEN);
+ dos_unmangled = acnv_u2dos(out);
if (!dos_unmangled)
{
DEBUG(0,("dos_unmangle: out of memory!\n"));
goto done;
}
- ucs2_to_dos (dos_unmangled, out, PSTRING_LEN);
done:
SAFE_FREE(in);
@@ -574,14 +565,13 @@ BOOL is_8_3(const char *fname, BOOL check_case)
if (strlen(fname) > 12) return False;
- ucs2name = (smb_ucs2_t *)malloc(13 * sizeof(smb_ucs2_t));
+ ucs2name = acnv_uxu2(fname);
if (!ucs2name)
{
DEBUG(0,("is_8_3: out of memory!\n"));
goto done;
}
- push_ucs2(NULL, ucs2name, fname, 13, STR_TERMINATE);
ret = is_8_3_w(ucs2name);
done:
@@ -650,7 +640,7 @@ NTSTATUS is_valid_name(const smb_ucs2_t *fname)
if (!fname || !*fname) return NT_STATUS_INVALID_PARAMETER;
- DEBUG(10,("has_valid_chars: testing\n")); /* [%s]\n", s)); */
+ DEBUG(10,("is_valid_name: testing\n")); /* [%s]\n", s)); */
ret = has_valid_chars(fname);
if (NT_STATUS_IS_ERR(ret)) return ret;
@@ -703,7 +693,6 @@ NTSTATUS is_valid_name(const smb_ucs2_t *fname)
BOOL is_mangled(const char *s)
{
smb_ucs2_t *u2, *res;
- size_t u2len;
BOOL ret = False;
DEBUG(10,("is_mangled: testing [%s]\n", s));
@@ -711,14 +700,12 @@ BOOL is_mangled(const char *s)
if (!s || !*s) return False;
if ((strlen(s) > 12) || (!strchr(s, '~'))) return False;
- u2len = (strlen(s) + 1) * sizeof(smb_ucs2_t);
- u2 = (smb_ucs2_t *)malloc(u2len);
+ u2 = acnv_dosu2(s);
if (!u2)
{
DEBUG(0,("is_mangled: out of memory!\n"));
return ret;
}
- dos_to_ucs2(u2, s, u2len);
res = unmangle(u2);
if (res) ret = True;
@@ -774,7 +761,6 @@ void reset_mangled_cache(void)
BOOL check_mangled_cache(char *s)
{
smb_ucs2_t *u2, *res;
- size_t slen, u2len;
BOOL ret = False;
DEBUG(10,("check_mangled_cache: I'm so ugly, please remove me!\n"));
@@ -782,15 +768,12 @@ BOOL check_mangled_cache(char *s)
if (!s || !*s) return False;
- slen = strlen(s);
- u2len = (slen + 1) * sizeof(smb_ucs2_t);
- u2 = (smb_ucs2_t *)malloc(u2len);
+ u2 = acnv_dosu2(s);
if (!u2)
{
DEBUG(0,("check_mangled_cache: out of memory!\n"));
return ret;
}
- dos_to_ucs2(u2, s, u2len);
res = unmangle(u2);
if (res)
@@ -814,22 +797,18 @@ BOOL check_mangled_cache(char *s)
void mangle_name_83(char *s)
{
smb_ucs2_t *u2, *res;
- size_t slen, u2len;
DEBUG(10,("mangle_name_83: I'm so ugly, please remove me!\n"));
DEBUG(10,("mangle_name_83: testing -> [%s]\n", s));
if (!s || !*s) return;
- slen = strlen(s);
- u2len = (slen + 1) * sizeof(smb_ucs2_t);
- u2 = (smb_ucs2_t *)malloc(u2len);
+ u2 = acnv_dosu2(s);
if (!u2)
{
DEBUG(0,("mangle_name_83: out of memory!\n"));
return;
}
- dos_to_ucs2(u2, s, u2len);
res = mangle(u2);
if (res) ucs2_to_dos (s, res, 13); /* ugly, but must be done this way */