summaryrefslogtreecommitdiff
path: root/source3/smbd/mangle.c
AgeCommit message (Collapse)AuthorFilesLines
2001-11-04a big one:Simo Sorce1-1084/+249
- old mangle code has gone, the new one based on tdb seem resonably ok probably the valid.dat table need to be updated to treat wild chars as invalid ones (work ok without it) - a LOT of new string manipulation function for unicode, they are somewhat tested but a review would not be bad - some new function I will need for the new unix_convert function I'm writing, this will be renamed filename_convert and use only unicode strings. - charconv, I attached a comment, if someone wnat to look if I'm right or just was hacking to late in the night to make a sane one :) of course any bug is my responsibility an will be pleased to see patches if you find any. :-) Simo. (This used to be commit ee19f7efb6ea9216fc91cf112ac1afa691983e9d)
2001-10-29- fix string len for an ucs2_to_dos function as any ucs2 char may be up to 4 ↵Simo Sorce1-4/+81
dos hars... - addedd ascii compatibility functions (This used to be commit 8b9302b7078f1dd5459051500ed19a696dc09ae0)
2001-10-28fix a logic bug on max size of a returned string,Simo Sorce1-3/+9
this fixes also the bug with file renaming. (This used to be commit 5246d7609c3aff658fcd08a1f1c1bb6e11509e35)
2001-10-26Fixed compile warning.Tim Potter1-1/+1
(This used to be commit 320c21b7a9e0a914b8a9523775df8895cb41256f)
2001-10-23get rid of compiler warnings (casts and delete unused variables)Herb Lewis1-1/+0
(This used to be commit 51cb4411df61d1caec9d84809b1a53a6a632f808)
2001-10-22ops, some testing code in compat function let only mangled name come back.Simo Sorce1-12/+12
(This used to be commit e48eb7b572de10481e928fb55243f47e8a3aa446)
2001-10-22lets try the new mangling codeSimo Sorce1-7/+39
all the calls go through a compatibility interface will change that soon a new mangle.tdb file will be set in the lock directory it contains a static mapping longname<->manglename (This used to be commit 1ffacd2068a896d36a9e56b6e28c63e2f7e98762)
2001-10-13introduce mangle backward compatibility functionsSimo Sorce1-2/+147
add talloc_asprintf() (This used to be commit 7264d611eff871f424d449e1ff1c7ec3f5fdde40)
2001-10-11remove unused function in mangle.cSimo Sorce1-12/+0
fix some alloc leaks spotted by andreas moroder. (This used to be commit 39409a20f69078709c63f6f867c042e66d5c7de3)
2001-10-10Fixed some compile warnings.Tim Potter1-4/+2
(This used to be commit c9b3e6c71401efe754c10f7077671f0c1cebdafb)
2001-10-08tim suggested to add a copyright note :)Simo Sorce1-1/+21
(This used to be commit c0bb484e0fcdfece62d361aaaebd90cf15548992)
2001-10-07more fixing and testing.Simo Sorce1-54/+83
added ucs2_to_dos83 function. the code should be ok now. further test with japanese and other languages is needed at this point. (This used to be commit 74f746fee2e528e4f23192e21e1d74739dc1072e)
2001-10-04init only in test code.Simo Sorce1-48/+55
remove unused structure for tdb data. fixes. (This used to be commit c82cf58ae2ae9790b8575328b419dbc8a089b60f)
2001-10-02Removed 'extern int DEBUGLEVEL' as it is now in the smb.h header.Tim Potter1-2/+0
(This used to be commit 2d0922b0eabfdc0aaf1d0797482fef47ed7fde8e)
2001-09-29undef the code for nowSimo Sorce1-2/+2
(This used to be commit 5ab220efd7a1532e11370cb0fc9854d610a7f3d7)
2001-09-29further devel and test kit.Simo Sorce1-67/+264
first tests show it still does not work. work in progress... (This used to be commit a4c746ac474e2e4cead78076ffe2109fab74aefe)
2001-09-27get out unicode_from_buffer and buffer_from_unicode, unneeded.Simo Sorce1-112/+139
store mangled filename in dos charset and unmangled in unicode. clean ups still lot to do. againg compiled but not yet tested. (This used to be commit 2d1aabb6d4bf23985a9ce0f7e065292aacedc80a)
2001-09-27minor fixesSimo Sorce1-10/+5
(This used to be commit 57e639bbdd115b51362caf7e3db4ba34ccdeddc2)
2001-09-25- the inactive core of the new mangling code that use tdbSimo Sorce1-0/+357
- some more utils for unicode string manipulation (This used to be commit 4ade36446e7dee1c3828d8c822f047c6e891a644)
2001-09-17move to SAFE_FREE()Simo Sorce1-4/+4
(This used to be commit a95943fde0ad89ae3f2deca2f7ba9cb5ab612b74)
2001-07-04strchr and strrchr are macros when compiling with optimisation in gcc, so we ↵Andrew Tridgell1-12/+12
can't redefine them. damn. (This used to be commit c41fc06376d1a2b83690612304e85010b5e5f3cf)
2001-07-04The big character set handling changeover!Andrew Tridgell1-65/+5
This commit gets rid of all our old codepage handling and replaces it with iconv. All internal strings in Samba are now in "unix" charset, which may be multi-byte. See internals.doc and my posting to samba-technical for a more complete explanation. (This used to be commit debb471267960e56005a741817ebd227ecfc512a)
2001-07-02Very minor cleanup. I was looking for another problem and found some bitsChristopher R. Hertel1-2/+2
of code that were unclear. Chris -)----- (This used to be commit c2977be3408645499915d728538ba2c65b97614f)
2000-06-13Removed a patch that Andrew had added because 'insure' was incorrectlyChristopher R. Hertel1-9/+0
reporting a memory leak in the cache module. I've modified the cache code to prevent insure getting confused, so the patch can now be removed. (This used to be commit 50599b0fa2b78109e3bd2cf50007dc69c4059955)
2000-04-23avoided a memory leak in the ubi code by deleting a mangled cacheAndrew Tridgell1-1/+11
entry before adding to ensure that we don't ever add a duplicate entry this code can be removed when ubi gets fixed (This used to be commit 062d79bf8ba5308803393c7b9140d1f77db3690f)
2000-01-26Second set of inline optimisation fixes from Ying Chen <ying@almaden.ibm.com>.Jeremy Allison1-4/+4
Stop makeing function calls for every use of skip_multibyte_char. This function is called several *million* times during a NetBench run :-). Jeremy. (This used to be commit e5a3deba46ea2d4cb49a6c4b73edd766fe8b5a5c)
2000-01-08smbd/mangle.cJeremy Allison1-1/+1
smbd/negprot.c: Tidyup of static initializers. smbd/server.c: Fix -l option. Jeremy. (This used to be commit d120f22fefde21b38e43ea5ad0180bf27304d2eb)
1999-12-13first pass at updating head branch to be to be the same as the SAMBA_2_0 branchAndrew Tridgell1-30/+71
(This used to be commit 453a822a76780063dff23526c35408866d0c0154)
1998-11-02removed comment line at end of fileLuke Leighton1-1/+0
(This used to be commit 5e2fc8b7ccf4a9c8b0a2acf4bd752531ac6fa775)
1998-09-08Added back groupname map stuff removed by Andrew's "slash 'n' burn"Jeremy Allison1-3/+4
tactics :-). Protected by #ifdef until used. Fixed bug in fd_attempt_close() where a pointer to potentially free'd memory was returned. I hate that. Added "blocking locks" as a per-share option for performance testing. Changed is_mangled() so it will return true if called with a pathname and any component of the pathname was mangled (it was already attempting to do this, but not checking for a '/' as end-of-mangle). This should be a better fix for the wierd stat cache bug Andrew identified. Jeremy. (This used to be commit 0de01f45980c7bc261248a9cead972a8d8cbd594)
1998-09-03fixed a bug in the name mangling code. It implicitly assumed thatAndrew Tridgell1-39/+39
mangling a name can't increase it's size which isn't true. (imagine a file called "L B" which mangles to "LB~XX") The symptoms were that users couldn't run batch files from short directory names that contained non 8.3 characters (such as spaces). (This used to be commit c319d8ea3f8b42bb3a8e501642971ed0bdb21583)
1998-08-14this is the bug change to using connection_struct* instead of cnum.Andrew Tridgell1-25/+0
Connections[] is now a local array in server.c I might have broken something with this change. In particular the oplock code is suspect and some .dll files aren't being oplocked when I expected them to be. I'll look at it after I've got some sleep. (This used to be commit c7ee025ead4a85b6fa44a832047b878451845fb6)
1998-07-25Noticed that I was using the strlen() of a string that I had strdup()'dChristopher R. Hertel1-1/+1
before testing that the strdup() worked. Fixed. (This used to be commit 899d0d5de5dd9d080d5c4cb94874d4f939427d1b)
1998-05-22I've put the ubiqx headers back into includes.h, and removed them fromChristopher R. Hertel1-1/+0
dir.c & mangle.c. This was possible after I checked the tree code to make sure that the tree code did not reference functions by macro name. Also, note that the AVL module has been removed to prevent conflict with the SplayTree macro defines. Chris -)----- (This used to be commit a1f4c8567c3c5264cbfa99867fa894cafab7da81)
1998-05-12This is a security audit change of the main source.Jeremy Allison1-8/+8
It removed all ocurrences of the following functions : sprintf strcpy strcat The replacements are slprintf, safe_strcpy and safe_strcat. It should not be possible to use code in Samba that uses sprintf, strcpy or strcat, only the safe_equivalents. Once Andrew has fixed the slprintf implementation then this code will be moved back to the 1.9.18 code stream. Jeremy. (This used to be commit 2d774454005f0b54e5684cf618da7060594dfcbb)
1998-05-06Andrew redefines the free() function to do some memory management testing.Christopher R. Hertel1-1/+19
He also suggested that some systems may implement free() as a macro (but I think he was looking for an excuse ;). Anyway, I've added a function to mangle.c that calls free(). Chris -)----- (This used to be commit 95f7b03285c42e8f5573690939b79afc7e686908)
1998-04-13Fixed aggregate initializer problem for gcc.Jeremy Allison1-1/+1
Jeremy. (This used to be commit e74428e4287cbc1557cc79d4930371cfaf3256d4)
1998-04-13Changes include:Christopher R. Hertel1-409/+694
proto.h: The unusual. ;) reply.c: I changes some function names, and updated reply.c to match. See mangle.c below for more. server.c: Changed function names and parameters in file mangle.c, so changed server.c calls to match. See mangle.c below for more. mangle.c: I replaced the caching mechanism used for caching reverse mangled name maps. The old method was a large array of 256-byte strings. Movement in the stack (including push and pop) was done by memcpy()ing whole chunks of memory around. The new system uses the ubi_Cache module which, in turn, uses a splay tree. Entries are dynamically allocated using a minimum amount of memory. Searches are non-linear, which should speed things up a bit, too. Overall, this should save memory and be faster. Other changes: I streamlined the is_mangled() test and made other speed enhancements including replacing some static functions with macros. Added comments, etc. Note: Per an E'mail conversation with Andrew, the 'mangled stack' parameter in smb.conf doesn't do anything anymore. The cache is now set for 16K bytes maximum memory usage. The mangle stack parameter is silently ignored. This can easily be changed, but I'd rather introduce a 'mangled cache memory' parameter and remove 'mangled stack'. Remaining problems: While testing the module, I noticed that something is calling name_map_mangle() twice. The result is that names which contain illegal characters are getting mangled twice. Also, the entire module works by overwriting the input string. This has a variety of nasty side effects. Summary: There's a lot still to be done, but the changes I have in place *should* work in exactly the same way (except for the mangle stack parameter). The rest of the bugs and other issues are separate. Chris -)----- (This used to be commit 8759bec11ba483b2292b0e513b85c98ed5e3e2d4)
1998-03-04Removed broken change I made to mangle.c (ooops. Andrew's originalJeremy Allison1-1/+1
algorithm was correct). Finally (I think) fixed the mangled directory stack issue in scan_directory() correctly. Mangled & non-mangled names are now being checked correctly. Hurrah to Ulrik Dickow <ukd@kampsax.dk> who helped isolate this one. Jeremy. (This used to be commit 37f5f7b557aa59c7eba4a9f2f2f323d7cec62fc7)
1998-03-03Change the multibyte character set support so thatJeremy Allison1-88/+48
Kanji support is one case of multibyte character support, rather than being a specific case in single byte character support. This allows us to add Big5 Chinese support (code page 950) and Korean Hangul support (code page 949) at very little cost. Also allows us to easily add future multibyte code pages. Makefile: Added codepages 949, 950 as we now support more multibyte codepages. asyncdns.c: Fixed problem with child being re-spawned when parent killed. charcnv.c charset.c client.c clitar.c kanji.c kanji.h smb.h util.c loadparm.c: Generic multibyte codepage support (adding Big5 Chinese and Korean Hangul). nmbd.c: Fixed problem with child being re-spawned when parent killed. mangle.c: Modified str_checksum so that first 15 characters have more effect on outcome. This helps with short name mangling as most 'long' names are still shorter than 15 chars (bug was foobar_mng and foobar_sum would hash to the same value, with the modified code they hash differently. Jeremy. (This used to be commit 299016338cfb47f0c585875ef9b468121fcee97d)
1998-01-22This is *not* a big change (although it looks like one).Jeremy Allison1-1/+1
This is merely updating the Copyright statements from 1997 to 1998. It's a once a year thing :-). NO OTHER CHANGES WERE MADE. Jeremy. (This used to be commit b9c16977231efb274e08856f7f3f4408dad6d96c)
1997-11-07Modified Files:Christopher R. Hertel1-241/+316
mangle.c server.c proto.h mangle.c I am planning to replace the mangled_stack array with a proper stack, but found many style inconsistencies (no, really). As you might expect, I have standardized on my own preferences. ;) I also found a potential problem in create_mangled_stack (which I've renamed as reset_mangled_stack). If the stack size were passed into the function as 0 or less, there was the possibility that the array would have been freed twice. I doubt that this ever happens, but I don't like to leave holes. Of course, the fix will be irrelevent once I replace the array with a linked-list-based stack. server.c Changed the call to create_mangled_stack() to a call to reset_mangled_stack(). proto.h Regenerated to match the above changes. (A real comment! How unusual!) (This used to be commit 34d1b3e4fa7a1158f3a3c5c47adf0417c7144095)
1997-10-12remove { and } from the list of illegal characters in filenames. TheAndrew Tridgell1-1/+1
CIFS3 spec does not list them as illegal. This allows things like the control panel icon to be placed on a Samba drive. (This used to be commit d2ac9e6fb6e76778154c58217237251d7bb0e98c)
1997-09-26Adding Andrews buffer overflow fixes into the main branch.Jeremy Allison1-4/+4
Jeremy (jallison@whistle.com) (This used to be commit e7eb1f044d3101679dc7a118820ea5efe0cd837c)
1997-09-11charcnv.c client.c clitar.c kanji.c kanji.h loadparm.cJeremy Allison1-96/+109
mangle.c smb.h util.c: Big merge to allow KANJI support to be in the main binary without explicitly compiling with it. locking.c: Fix for smbstatus not being able to read files. namepacket.c: Removed unneccesary debug statement. trans2.c: Added Luke's proposed fix (ifdefed out until further testing). nmblookup.c: Fixed bug where query fails and status is done on bogus IP. Jeremy (jallison@whistle.com) (This used to be commit 9196255022ae8c51b527412747b324819bea2c13)
1997-08-28mangle.c: Fixed bug that caused string to run off the end of the mangled map.Jeremy Allison1-1/+1
server.c: Changed comparison from dname to name2 - seems correct - don't know why I changed it originally. hmmmmm. trans2.c: Made lanman2 code more similar to scan_directory(). I should make the trans2 code call scan_dir as they are so similar. Jeremy(jallison@whistle.com). (This used to be commit 3909576849025ed21e5282abc892ae7582ee0275)
1997-05-08'The mother of all checkins' :-). Jeremy Allison (jallison@whistle.com)Samba Release Account1-1/+1
Wed May 7 1997: Update for 1.9.17alpha1 release - 'browsefix release' designed to make browsing across subnets work. byteorder.h: Updated copyright to 1997. charcnv.c: Updated copyright to 1997. charset.c Updated copyright to 1997. charset.h Updated copyright to 1997. client.c Updated copyright to 1997. clientutil.c Updated copyright to 1997. dir.c Updated copyright to 1997. fault.c Updated copyright to 1997. includes.h Updated copyright to 1997. interface.c Updated copyright to 1997. ipc.c Updated copyright to 1997. kanji.c Updated copyright to 1997. kanji.h Updated copyright to 1997. loadparm.c Updated copyright to 1997. locking.c Updated copyright to 1997. mangle.c Updated copyright to 1997. message.c Updated copyright to 1997. nameannounce.c Made use of WINS subnet explicit. Added reset_announce_timer() so announcement can be made immediately when we become a master. Expanded code to do sync with dmb. namebrowse.c Removed redundent checks for AM_MASTER in sync code. Made use of WINS subnet explicit. namedbname.c Made use of WINS subnet explicit. namedbresp.c Made use of WINS subnet explicit. namedbserver.c Made use of WINS subnet explicit. namedbsubnet.c Explicitly add workgroup to WINS subnet when we become a dmb. Made use of WINS subnet explicit. namedbwork.c Made use of WINS subnet explicit. Removed redundent check_work_servertype() function. nameelect.c Explicitly add workgroup to WINS subnet when we become a master browser. Made use of WINS subnet explicit. namelogon.c Updated copyright to 1997. namepacket.c Updated copyright to 1997. namequery.c Updated copyright to 1997. nameresp.c Made use of WINS subnet explicit. Made nmbd fail if configured as master browser and one exists already. nameserv.c Made use of WINS subnet explicit. Remove redundent logon server and domain master code. nameserv.h Add emumerate subnet macros. nameservreply.c Made use of WINS subnet explicit. nameservresp.c Updated copyright to 1997. namework.c Made use of WINS subnet explicit. Updated code to add sync browser entries to add subnet parameter. nmbd.c Added sanity check for misconfigured nmbd. nmblib.c Updated copyright to 1997. nmblookup.c Updated copyright to 1997. nmbsync.c Removed redundent AM_ANY_MASTER check. params.c Updated copyright to 1997. password.c Updated copyright to 1997. pipes.c Updated copyright to 1997. predict.c Updated copyright to 1997. printing.c Updated copyright to 1997. proto.h Changed protos for new nmbd code. quotas.c Updated copyright to 1997. replace.c Updated copyright to 1997. reply.c Updated copyright to 1997. server.c Updated copyright to 1997. shmem.c Updated copyright to 1997. smb.h Updated copyright to 1997. smbencrypt.c Updated copyright to 1997. smbpasswd.c Updated copyright to 1997. smbrun.c Updated copyright to 1997. status.c Updated copyright to 1997. system.c Updated copyright to 1997. testparm.c Updated copyright to 1997. testprns.c Updated copyright to 1997. time.c Updated copyright to 1997. trans2.c Updated copyright to 1997. trans2.h Updated copyright to 1997. uid.c Updated copyright to 1997. username.c Updated copyright to 1997. util.c Updated copyright to 1997. version.h Changed to 1.9.17alpha1. (This used to be commit cf23a155a1315f50d488794a2caf88402bf3e3e6)
1997-02-11Replaced YOST code with more functionally equivalent code thatSamba Release Account1-8/+3
changes a bit less. Also added fix to tricky reply_mv case. jra@cygnus.com (This used to be commit f22ac13b1423186d463c9fc5b3588a3dcbd7bc1c)
1997-02-10JHT ===> William Yost patches integrated to fix leading path on 8.3Samba Release Account1-0/+5
filename problem. Problem conditions: case sensitive = no default case = lower mangle case = yes preserve case = yes short preserve case = yes Problem: Win95 still writes upper case file names. Patches supplied have been incorporated into mangle.c and server.c but needs YOSTW to be defined for it to take effect. Action: ======= If we are happy with the patch, delete old code in mangle.c, then remove all YOSTW #ifdefs. (This used to be commit 84fc674c89e8999f284b59888dfa2cdc47438e88)
1996-10-05- replace the base36 function with one that works on more systemsAndrew Tridgell1-6/+3
(compiler bugs were the problem) - minor password cleanups (catch WfWG bug where it sets the password to a space instead of a NULL) - fix printing problem for kanji users - minor cleanups (This used to be commit 92566ecc315c29da6e9aaa67ddae33e64f5bcc67)