summaryrefslogtreecommitdiff
path: root/source3/lib/util_unistr.c
AgeCommit message (Collapse)AuthorFilesLines
2001-11-10fixed, moved and added some functionsSimo Sorce1-93/+112
note the useful acnv_uxu2 and acnv_u2ux functions in charcnv.c (This used to be commit 64dde3b64fc091cda95fc4ed145595b5d79b2e01)
2001-11-04Added missing strchr_wa.Jeremy Allison1-0/+5
Jeremy. (This used to be commit 16c5d279b97250ceb84ee6de6e5e801350c816c4)
2001-11-04a big one:Simo Sorce1-23/+182
- 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-11-04remove {} from default valid char listAndrew Tridgell1-1/+1
(This used to be commit 5dd3c7b3fb8aac7fb3a256ae40c882fb8983537f)
2001-10-09old fixes I forgot to commitSimo Sorce1-5/+5
(This used to be commit 7895593929f443c6a256d2a13035aee11bed3dbf)
2001-10-07fixed lame valid tableAndrew Tridgell1-2/+2
(This used to be commit 67017619afed8fe10abd65d54538348d3ea92b9f)
2001-10-03fixed basic ucs2 operation on big endian boxes. Still a bit more toAndrew Tridgell1-5/+5
do, but at least you can connect now. (This used to be commit 211aeffa1a770716f798fd6ba12ab29a95555526)
2001-10-03switched over to a new method of handling uppercase/lowercase mappingsAndrew Tridgell1-69/+70
for unicode strings. The new method relies on 3 files that are mmap'd at startup to provide the mapping tables. The upcase.dat and lowcase.dat tables should be the same on all systems. The valid.dat table says what characters are valid in 8.3 names, and differs between systems. I'm committing the japanese valid.dat here, in future we need some way of automatically installing and choosing a appropriate table. This commit also adds my mini tdb based gettext replacement in intl/lang_tdb.c. I have not enabled this yet and have not removed the old gettext code as the new code is still being looked at by Monyo. Right now the code assumes that the upcase.dat, lowcase.dat and valid.dat files are installed in the Samba lib directory. That is not a good choice, but I'll leave them there until we work out the new install directory structure for Samba 3.0. simo - please look at the isvalid_w() function and think about using it in your new mangling code. That should be the final step to correctly passing the chargen test code from monyo. (This used to be commit 1c221994f118dd542a158b2db51e07d04d0e9314)
2001-10-02Removed 'extern int DEBUGLEVEL' as it is now in the smb.h header.Tim Potter1-3/+0
(This used to be commit 2d0922b0eabfdc0aaf1d0797482fef47ed7fde8e)
2001-09-30make strupper() and strlower() not modify the string if it doesn'tAndrew Tridgell1-4/+14
need modifying that makes constant strings OK (This used to be commit 57196635d9b7edfcbfe1708dd22308ab30c02240)
2001-09-25- the inactive core of the new mangling code that use tdbSimo Sorce1-0/+107
- some more utils for unicode string manipulation (This used to be commit 4ade36446e7dee1c3828d8c822f047c6e891a644)
2001-08-24fixes big endian unistring problems. Need to check that it didn'tHerb Lewis1-2/+9
break little-endian machines. (This used to be commit 0f08e79030419b778c1229712c98b839faaf734f)
2001-07-20It looks like the rpc client code in libsmb hasn't been converted to theTim Potter1-0/+10
new internal string stuff. The main problem is that some unicode strings are null terminated and some aren't. There's no rhyme or reason to it - some pipes have 99% of the strings terminated and some have 99% unterminated. To avoid having to actually know the termination policy, I propose a set of functions that take a UNISTR2* and use the length contained there. Added rpcstr_pull_unistr2_string() function to convert a unicode string of dubious termination to a fstring. (This used to be commit e5b62b4961769e45bc377be6180ca61ef5f6c22e)
2001-07-18removed some unnecessary codeAndrew Tridgell1-10/+0
(This used to be commit 1436c9f424abbac2752e952172ddbdf15ec73f91)
2001-07-06fixed strrchr_mAndrew Tridgell1-4/+3
(This used to be commit f4359b5f7ff891d7fcb5772b589756376ae5d412)
2001-07-04unicode string length is twice longer ;-)Jean-François Micouleau1-1/+1
(This used to be commit d39d8429d1cb8a976022ae92a1ce551f7d876aff)
2001-07-04The big character set handling changeover!Andrew Tridgell1-1573/+71
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-06-23Added other_safe_chars to alpha_strcpy(). Needs testing but is a betterJeremy Allison1-2/+6
fix for the problem. Jeremy. (This used to be commit e059fffd03a1382fb2b7059b6de369d9fc765a17)
2001-06-21next_token() was supposed to be a reentrant replacement for strtok(),Andrew Tridgell1-150/+0
but the code suffered from bitrot and is not now reentrant. That means we can get bizarre behaviour i've fixed this by making next_token() reentrant and creating a next_token_nr() that is a small non-reentrant wrapper for those lumps of code (mostly smbclient) that have come to rely on the non-reentrant behaviour (This used to be commit 674ee2f1d12b0afc164a9e9072758fd1c5e54df7)
2001-06-12Fix from TAKAHASHI Motonobu <monyo@samba.gr.jp> for multibyte conversionJeremy Allison1-30/+16
problems. Jeremy. (This used to be commit 24eea8a309ff0151277b9537a5c00321041e70d3)
2001-04-08Got "medieval on our ass" about adding the -1 to slprintf.Jeremy Allison1-2/+2
Jeremy. (This used to be commit 94747b4639ed9b19f7d0fb896e43aa392a84989a)
2001-03-15AS/U on a sparc now joins and authenticates against a Samba PDC !Jeremy Allison1-69/+1
Jeremy. (This used to be commit 28a0bc5f5710aa732db662caa38f9da2138b5db2)
2001-03-13Fixed reading of strings from big-endian RPC clients.Jeremy Allison1-0/+68
Jeremy. (This used to be commit e7ecb9410ff2e4fcd33bca9f82e14c060590942a)
2001-02-21make ascii_to_unistr always use little-endian. This fn is never usedAndrew Tridgell1-2/+5
except in my code so I know this is safe. otherwise unicode client lib doesn't work on big-endian hosts (This used to be commit 18ede716d10de1ac774cca82b4b8ff5ea1a9650d)
2001-02-20initial client side unicode support (needed for netapp filer)Andrew Tridgell1-1/+1
I've currently got this code disabled by default as it is incomplete. You enable it by setting a USE_UNICODE environment variable. Once the support is complete this check will be removed and the CAP_UNICODE capability bit will be the sole determination of whether the client library code uses unicode right now I have converted session_setup and tconx. I will do more fns over the next few days. see clistr.c for the new client side string interface. Luckily it tends to make the code smaller and neater while adding unicode support. (This used to be commit e1a04e621f1c28d8e6e543d43741ca0272e2237f)
2000-12-20Removed uninitialised variable.Jeremy Allison1-1/+0
Jeremy. (This used to be commit 56a93567a106f25e87df093e1861f6bdd1d3196a)
2000-12-18A couple more UMR fixes.Jeremy Allison1-2/+2
Jeremy. (This used to be commit a83702c99f1ecd6e68f8c178b20823fce6d4c6c6)
2000-12-15Never free anything in the rpc_parse/prs_XXX functions. Do it in the enclosingJeremy Allison1-5/+5
function. lib/util_unistr.c: Check lengths *before* reading source - prevent uninitialised memory reads. Jeremy. (This used to be commit ce4f461965c872fbfc9fe5f6b98aed58bb3dd67a)
2000-12-15lib/util_unistr.c:Jean-François Micouleau1-22/+21
rewrote unistr2_to_ascii() to correct a bug seen on SGI boxes. rpc_parse/parse_misc.c: rpc_parse/parse_prs.c: rewrote of BUFFER5 handling to NOT byteswap when it was already in network byte order. rpc_parse/parse_samr.c: cleanup of samr_io_q_lookup_domain(), remove the over-parsing by 2 bytes. rpc_server/srv_lsa.c: UNISTR2 strings need to be NULL terminated to pleased W2K. rpc_server/srv_spoolss_nt.c: use snprintf instead of safe_strcpy as we want the string truncated at 32 chars. That should fix SUN and SGI box not able to act as printserver and the problem with joining from a W2K wks. J.F. (This used to be commit 69fe739303b105f2c488f266f13977da1b6b201d)
2000-12-01Use lp_codepagedir() instead of CODEPAGEDIR when loading the unicode map.Tim Potter1-2/+3
Found by Joseph Cheek <joseph@cheek.com> (This used to be commit ec74fdc631fbd5f0b5450df02acb9cd98c153823)
2000-10-10Fixed nasty size wrong bug spotted by the eagle eyes ofJeremy Allison1-1/+1
JF :-). Jeremy. (This used to be commit 443293a06530d0a5421b39d9a6a224d6ae316bd3)
2000-10-04Adding Herb's compile warning fixes to HEAD.Jeremy Allison1-4/+4
Jeremy. (This used to be commit d131ad1ce3f6e72e295f865a463f8dcbfa6f8d42)
2000-10-03utf-8 and EUC3 patch from Hiroshi Miura Samba User Group Japan staff.Jeremy Allison1-0/+14
mkdir high bits patch from Robert Dahlem" <Robert.Dahlem@gmx.net>. jeremy. (This used to be commit b40191d27180ab1e59935086073c4d312552f717)
2000-08-12fixed unistr_to_ascii to deal with NULL src stringsGerald Carter1-14/+14
jerry (This used to be commit 8e95aae1709a9be28d6e25ff6f0fdc729dc09274)
2000-08-10Deal will NULL UNISTR in unistr_to_asciiGerald Carter1-13/+21
jerry (This used to be commit cfa4c878a2ccaf346940f8f4a201737e185f76d6)
2000-07-07More rpcclient merge issues:Gerald Carter1-0/+46
* fixes some readline bugs from the merge * first attempt at commands (spoolenum almost works) * no changes to existing functions in HEAD; only additions of new functions. I'll weed out what I can as I go. --jerry (This used to be commit 61d2aad5dc2b212b11c981f1eca47efa627e9fc8)
2000-06-23lib/util_unistr.c: Off-by-one fix for dos_PutUniStr from John Reilly ↵Jeremy Allison1-1/+1
jreilly@hp.com. Memory leak fix for new sec_ctx code (sorry Tim :-). Jeremy. (This used to be commit edaf49c66d5a5ccf6689b358c301e208599a468f)
2000-06-22lib/util_unistr.c: Removed ascii_to_unistr() as it does no codepage.Jeremy Allison1-48/+3
Removed unistr_to_ascii() as it was never used. printing/nt_printing.c: Removed "DUMMY.XX" files. rpc_server/srv_spoolss_nt.c: Use dos_PutUniCode() instead of ascii_to_unistr(). Attempted to fix the "return value" size code based on J.F's comments. This needs looking at. Jeremy. (This used to be commit de99011bf3b2a23bd1854a047382a107aaeb9c68)
2000-06-01Getting back to a compilable state (not there yet but close).Jeremy Allison1-1/+1
Added patches for random -> sys_random. Added set_effective_xxx patches for AFS code. Memory allocation changes in spoolss code. Jeremy. (This used to be commit c2099cfb033c2cdb6035f4f7f50ce21b98e1584d)
2000-05-27unistr_to_dos not unistr_to_asciiLuke Leighton1-0/+22
(This used to be commit f46c4fe876a0cabe7044ca30c17e6c217d618635)
2000-05-12Added unicode_to_dos_char() function to address converting single UNICODEJeremy Allison1-0/+22
characters to one or more DOS codepage characters. Jeremy. (This used to be commit eefbfb5e16fcf40f335edc840a49f837f6b64111)
2000-05-10lib/util_unistr.c:Jeremy Allison1-11/+15
libsmb/clilist.c: rpc_server/srv_spoolss_nt.c: smbd/trans2.c: Changed unistr_to_ascii to unistr_to_dos - do codepage conversion. msdfs/msdfs.c: Removed stub unistr_to_dos. libsmb/pwd_cache.c: Removed obfuscation functions as they don't do anything and don't add any security. Jeremy. (This used to be commit 1ed146467e764e6a81d8f78cd58fb5765ebf5d21)
2000-04-30- removed all our old wildcard matching code and replaced it with aAndrew Tridgell1-23/+16
call to ms_fnmatch(). This also removes all the Win9X semantics stuff and a bunch of other associated cruft. - moved the stat cache code into statcache.c - fixed the uint16 alignment requirements of ascii_to_unistr() and unistr_to_ascii() - trans2 SMB_FIND_FILE_BOTH_DIRECTORY_INFO returns the short name as unicode always (at least thats what NT4 does) - fixed some errors in the in-memory tdb code. Still ugly, but doesn't crash as much (This used to be commit 03e9cea004bbba72161a5323cf3b4556c94aed8e)
2000-04-22This is a *big* checkin that may break some things, but implements theJeremy Allison1-19/+12
new open mechanism Andrew & I discussed. config.sub: configure: Included the QNX patch. include/vfs.h: smbd/vfs-wrap.c: smbd/vfs.c: Added ftruncate vfs call (needed). Note that we will also need locking calls in the vfs (to be added). lib/util_unistr.c: nmbd/nmbd_processlogon.c: Fix for NT domain logons causing nmbd to core dump. Also fix for sidsize DOS bug. locking/locking.c: Check value of ret before using it for memdup. printing/printing.c: Convert print_fsp_open to return an allocated fsp. rpc_server/srv_lsa.c: Fix for NT domain logons. I have removed all use of lp_share_modes() from the code (although I left the parameter in the table for backwards compatibility). It no longer makes sense for this to exist. smbd/close.c: Removed lp_share_modes(). smbd/fileio.c: Fixed parameters to unlock_share_entry call in panic code. smbd/files.c: Correctly set the unix_ERR_code to ERRnofids on fsp allocation fail. smbd/nttrans.c: smbd/reply.c: smbd/trans2.c: Changed all occurrences of open_file_shared/open_directory/ open_file_stat to return an fsp from the call. smbd/open.c: Changed all occurrences of open_file_shared/open_directory/ open_file_stat to return an fsp from the call. In addition I have fixed a long standing race condition in the deny mode processing w.r.t. two smbd's creating a file. Andrew, please note that your original idea of using open with O_EXCL in this case would not work (I went over the races very carefully) and so we must re-check deny modes *after* the open() call returns. This is because there is a race between the open with O_EXCL and the lock of the share mode entry. Imagine the case where the first smbd does the open with O_EXCL and a deny mode of DENY_ALL, but is pre-empted before it locks the share modes and creates the deny mode entry for DENY_ALL. A second smbd could then come in with O_RDONLY and a deny mode of DENY_NONE and the two opens would be allowed. The *only* way to fix this race is to lock the share modes after the open and then do the deny mode checks *after* this lock in the case where the file did not originally exist. This code will need extensive testing but seems to initially work. Jeremy. (This used to be commit ab0ecc39d688f16b9692fe90b991f0b89287070a)
2000-04-15use macros for table boundariesAndrew Tridgell1-6/+9
(This used to be commit a82a5acff2ad2120f5480f0cb08550e95d80c59e)
2000-04-15a quick hack to reduce the size of the unicode map table headers fromAndrew Tridgell1-9/+39
3MB to 250k. I split the table into 3 sections, after noticing that 5/6 of the table was empty. (This used to be commit c1496736bbdb7f6bf1eb43a54f883e5f41a4d39e)
2000-04-11added a cheap and nasty skip_unibuf() fn to allow easier merging fromAndrew Tridgell1-0/+10
TNG out unicode string handling functions need a lot of work (This used to be commit 707401fc1e697362cdaadcfaac4edc964b80b1a0)
2000-03-27changed the definition of dos_PutUniCodeAndrew Tridgell1-4/+9
the previous definition could result is us overflowing a buffer. The null termination was always added yet the size returned did not include the null termination. the new function takes a BOOL null_terminate, and always returns the total number of bytes consumed by the string. (This used to be commit 426c90433396a95033eefcc4af97603abc934221)
2000-03-22Correctly convert from little-endian UNICODE to dos_codepage when doingJeremy Allison1-0/+2
secure file create. Jeremy. (This used to be commit 90134dd13721f60d4fb05ce9434b65e95ff09629)
2000-03-22acconfig.h configure configure.in: Added check for UT_SYSLEN for utmp code.Jeremy Allison1-51/+14
include/byteorder.h: Added alignment macros. include/nameserv.h: Added defines for msg_type field options - from rfc1002. lib/time.c: Typo fix. lib/util_unistr.c: Updates from UNICODE branch. printing/nt_printing.c: bzero -> memset. smbd/connection.c: Added check for UT_SYSLEN for utmp code. Other fixes : Rollback of unapproved commit from Luke. Please *ask* next time before doing large changes to HEAD. Jeremy. (This used to be commit f02999dbf7971b4ea05050d7206205d7737a78b2)