summaryrefslogtreecommitdiff
path: root/source3/lib/charcnv.c
AgeCommit message (Collapse)AuthorFilesLines
2007-10-18RIP BOOL. Convert BOOL -> bool. I found a few interestingJeremy Allison1-6/+6
bugs in various places whilst doing this (places that assumed BOOL == int). I also need to fix the Samba4 pidl generation (next checkin). Jeremy. (This used to be commit f35a266b3cbb3e5fa6a86be60f34fe340a3ca71f)
2007-10-10r25277: Belt-and-braces approach to Volker's fix for RPC-SAMBA3-GETUSERNAME.Jeremy Allison1-4/+7
If we promise dest is null terminated, ensure we do it even on fast path exits. Jeremy. (This used to be commit 32626e2b9770eb6b15c191a8feb881f81ed6c57a)
2007-10-10r25258: Fix a panic message and remove superfluous return after the call to ↵Michael Adam1-2/+1
smb_panic(). Michael (This used to be commit 8b5c34b7d141c44d65622f44f9432723230cea47)
2007-10-10r25238: Make the error returns from the string functionsJeremy Allison1-20/+20
always consistent. Return -1 on error, and ensure we check for this. In cases where the dest is already specified and we've been asked to terminate with a null, ensure we always do so even on error. Jeremy. (This used to be commit abedd967869ade9a43c3a8e1b889c60d4aca81cf)
2007-10-10r25222: Fix last assumptions that (size_t)-1 can be usedJeremy Allison1-18/+36
as a special dest_len of sizeof(pstring). Jeremy. (This used to be commit 9fc14c83cc5e3a360464c33e26b1073db63763d7)
2007-10-10r25199: Remove pstring from strdup_upper - make it theJeremy Allison1-14/+31
same as talloc_strdup_upper. Jeremy. (This used to be commit db1b6293771755f20660b071aac0284638dbed46)
2007-10-10r25195: Fix issue with calling pull_uc2_*alloc withJeremy Allison1-0/+8
str_len == 0. We should just return 0 in this case. Jeremy. (This used to be commit 8bb85f3f141f0f45b06d28f004cb2cf18252d4e1)
2007-10-10r25184: Fix some C++ warnings and an uninitialized variableVolker Lendecke1-1/+1
(This used to be commit b64df8a3c504ab7749c21ffb26e4771a9a0a328f)
2007-10-10r25138: More pstring elimination. Add a TALLOC_CTX parameterJeremy Allison1-8/+33
to unix_convert(). Jeremy. (This used to be commit 39c211a702e91c34c1a5a689e1b0c4530ea8a1ac)
2007-10-10r25136: When tallocing a string to uppercase remember the terminatingJeremy Allison1-1/+1
'\0' in size calculations. Jeremy. (This used to be commit 54c658867db3b6c602080d60936abab3af26e112)
2007-10-10r25120: One more warning.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 9cc70e3ccff9c3b20076572235d9dcbfd23e97e5)
2007-10-10r25117: The mega-patch Jerry was waiting for. Remove all pstrings fromJeremy Allison1-1/+5
the main server code paths. We should now be able to cope with paths up to PATH_MAX length now. Final job will be to add the TALLOC_CTX * parameter to unix_convert to make it explicit (for Volker). Jeremy. (This used to be commit 7f0db75fb0f24873577dcb758a2ecee74fdc4297)
2007-10-10r25111: Move to talloced pathnames on most code paths.Jeremy Allison1-1/+15
There are now ony 17 pstrings left in reply.c, and these will be easy to remove (and I'll be doing that shortly). Had to fix an interesting bug in pull_ucs2_base_talloc() when a source string is not null terminated :-). Jeremy. (This used to be commit 0c9a8c4dff10974dbffd2a302ae982896122fcc0)
2007-10-10r25009: Large patch discussed with Volker. Move unix_convert to a talloc-basedJeremy Allison1-0/+65
interface. More development will come on top of this. Remove the "mangled map" parameter. Jeremy. (This used to be commit dee8beba7a92b8a3f68bbcc59fd0a827f68c7736)
2007-10-10r24133: Explicitly pass flags2 down to push_string_fnVolker Lendecke1-2/+5
This needs a bit closer review, it also touches the client libs (This used to be commit 824eb26738d64af1798d319d339582cf047521f0)
2007-10-10r23865: Fix a type-punned errorVolker Lendecke1-1/+1
(This used to be commit a40d3a566af88464fc6afd2c6e6e8b6e3a98aac2)
2007-10-10r23858: Added srvstr_pull_buf_talloc() and srvstr_pull_talloc()Jeremy Allison1-16/+234
calls and converted reply_tcon and reply_tconX to use them - to show the boilerplate usage (valgrind tested). In conjunction with Volker's srvstr_get_path_talloc() work this should allow us to start eliminating all pstrings/fstrings out of the main path processing code. I'll watch the build farm tonight... Jeremy. (This used to be commit b4eff3f68089f082781afcf90d43faa317949566)
2007-10-10r23784: use the GPLv3 boilerplate as recommended by the FSF and the license textAndrew Tridgell1-2/+1
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
2007-10-10r23779: Change from v2 or later to v3 or later.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 407e6e695b8366369b7c76af1ff76869b45347b3)
2007-10-10r23726: Explicitly pass down the FLAGS2 field to srvstr_pull_buf. The nextVolker Lendecke1-2/+10
checkin will pull this up to srvstr_get_path. At that point we can get more independent of the inbuf, the base_ptr in pull_string will only be used to satisfy UCS2 alignment constraints. (This used to be commit 836782b07bf133e9b2598c4a089f1c810e4c7754)
2007-10-10r23662: According to simo, check_dos_char is neededVolker Lendecke1-0/+1
(This used to be commit c195eccefea69c17169c350a13bbfe845fc6fc44)
2007-10-10r23660: Anybody know what check_dos_char() was used for? It wasn't called atVolker Lendecke1-1/+0
all, so it's gone. With it 8k bss went away. (This used to be commit 7e9a4c39a5ce620f8eac74d0ae4dd80b96c81aca)
2007-10-10r23510: Tidy calls to smb_panic by removing trailing newlines. Print theJames Peach1-1/+1
failed expression in SMB_ASSERT. (This used to be commit 171dc060e2a576d724eed1ca65636bdafffd7713)
2007-10-10r22754: When processing a string, ensure we don't write one pastJeremy Allison1-6/+15
the terminating NULL if we've already processed the null in iconv. Jerry, once I get confirmation from Thomas Bork this needs to be in 3.0.25 final. Tests fine with valgrind here. Jeremy. (This used to be commit 14b167ef6e0f2100bd9cdd05c4457e57e952fa5e)
2007-10-10r18897: Fix valgrind bug found by Volker.Jeremy Allison1-1/+5
Jeremy. (This used to be commit db458d3e8bdd11812cea34128df6a3c29baa59c3)
2007-10-10r18793: Fix BE string handling in the auto-generatedJeremy Allison1-36/+49
code. Should now work again with ASU. Jeremy. (This used to be commit 53e97bf92817b6cfc3f93c999a81ef8ad49a1609)
2007-10-10r18787: Fix the strlen_m and strlen_m_term code by mergingJeremy Allison1-23/+76
in (and using elsewhere) next_codepoint from Samba4. Jerry please test. Jeremy. (This used to be commit ece00b70a4621633f1ac9e576c4bbe332031de09)
2007-10-10r16945: Sync trunk -> 3.0 for 3.0.24 code. Still needJeremy Allison1-7/+11
to do the upper layer directories but this is what everyone is waiting for.... Jeremy. (This used to be commit 9dafb7f48ca3e7af956b0a7d1720c2546fc4cfb8)
2007-10-10r15003: patch based on code from Arkady Glabek <aglabek@centeris.com> to ↵Gerald Carter1-0/+17
ensure that global memory is freed when unloading pam_winbind.so (needs more testing on non-linux platforms) (This used to be commit 1e0b79e591d70352a96e0a0487d8f394dc7b36ba)
2007-10-10r13915: Fixed a very interesting class of realloc() bugs found by Coverity.Jeremy Allison1-13/+12
realloc can return NULL in one of two cases - (1) the realloc failed, (2) realloc succeeded but the new size requested was zero, in which case this is identical to a free() call. The error paths dealing with these two cases should be different, but mostly weren't. Secondly the standard idiom for dealing with realloc when you know the new size is non-zero is the following : tmp = realloc(p, size); if (!tmp) { SAFE_FREE(p); return error; } else { p = tmp; } However, there were *many* *many* places in Samba where we were using the old (broken) idiom of : p = realloc(p, size) if (!p) { return error; } which will leak the memory pointed to by p on realloc fail. This commit (hopefully) fixes all these cases by moving to a standard idiom of : p = SMB_REALLOC(p, size) if (!p) { return error; } Where if the realloc returns null due to the realloc failing or size == 0 we *guarentee* that the storage pointed to by p has been freed. This allows me to remove a lot of code that was dealing with the standard (more verbose) method that required a tmp pointer. This is almost always what you want. When a realloc fails you never usually want the old memory, you want to free it and get into your error processing asap. For the 11 remaining cases where we really do need to keep the old pointer I have invented the new macro SMB_REALLOC_KEEP_OLD_ON_ERROR, which can be used as follows : tmp = SMB_REALLOC_KEEP_OLD_ON_ERROR(p, size); if (!tmp) { SAFE_FREE(p); return error; } else { p = tmp; } SMB_REALLOC_KEEP_OLD_ON_ERROR guarentees never to free the pointer p, even on size == 0 or realloc fail. All this is done by a hidden extra argument to Realloc(), BOOL free_old_on_error which is set appropriately by the SMB_REALLOC and SMB_REALLOC_KEEP_OLD_ON_ERROR macros (and their array counterparts). It remains to be seen what this will do to our Coverity bug count :-). Jeremy. (This used to be commit 1d710d06a214f3f1740e80e0bffd6aab44aac2b0)
2007-10-10r12522: Try and fix bug #2926 by removing setlocale(LC_ALL, "C")Jeremy Allison1-10/+1
and replace calls to isupper/islower/toupper/tolower with ASCII equivalents (mapping into _w variants). Jeremy. (This used to be commit c2752347eb2deeb2798c580ec7fc751a847717e9)
2007-10-10r12043: It's amazing the warnings you find when compiling on a 64-bitJeremy Allison1-1/+1
box with gcc4 and -O6... Fix a bunch of C99 dereferencing type-punned pointer will break strict-aliasing rules errors. Also added prs_int32 (not uint32...) as it's needed in one place. Find places where prs_uint32 was being used to marshall/unmarshall a time_t (a big no no on 64-bits). More warning fixes to come. Thanks to Volker for nudging me to compile like this. Jeremy. (This used to be commit c65b752604f8f58abc4e7ae8514dc2c7f086271c)
2007-10-10r5933: We were handling setting of EA's incorrectly - we should be able to setJeremy Allison1-0/+15
a list. Also not converting names from DOS CP to UNIX CP correctly. This code doesn't quite work yet but it's a work in progress to be fixed tomorrow (don't want to lose it). Jeremy. (This used to be commit 22fca746576810c5408540031a9603625a66cd75)
2007-10-10r4126: Fix from Björn Jacke <bjoern@j3e.de> for bugid #2040 - ensure the localeJeremy Allison1-0/+9
is reset to C to get ASCII-compatible toupper/lower functions. Jeremy. (This used to be commit 8e1b1693abf1e6eb46b23a5fa56776fc2ede7982)
2007-10-10r4088: Get medieval on our ass about malloc.... :-). Take control of all our ↵Jeremy Allison1-5/+5
allocation functions so we can funnel through some well known functions. Should help greatly with malloc checking. HEAD patch to follow. Jeremy. (This used to be commit 620f2e608f70ba92f032720c031283d295c5c06a)
2007-10-10r3857: Shut up gcc about erroneous "used uninitialised" warning.Jeremy Allison1-3/+3
Jeremy. (This used to be commit ac9b91d805c3ee68119d4b25ab05ed043f0ab8f1)
2007-10-10r2610: Even if we only use the fast-path (ascii only) thenJeremy Allison1-0/+21
we still need to set errno = E2BIG when we overflow. Jeremy. (This used to be commit 7b0560dcccbd44f1f7b67ba1d46f6a5680b6b47c)
2007-10-10r2392: Steal the nicer error message from Samba4 :-).Jeremy Allison1-8/+12
Jeremy. (This used to be commit afa88868b76a6e825bc45f8d405d4b3f557fdfdb)
2007-10-10r2114: Shameless theft of iconv commit from Samba4 to keep the two libs more ↵Jeremy Allison1-5/+5
in sync :-). try to cope with a wider range of UTF-16 characters when we are using an external libiconv library. Jeremy. (This used to be commit 5d04cd6804f6fc3b556e7c3b53fa0d7af39797c1)
2007-10-10r1684: Patch for bug #1578 based on fix from Alexander E. Patrakov,Jeremy Allison1-12/+19
<patrakov@ums.usu.ru>. Main change, hardcode replacement char to '_' as I really don't want a new parameter. Jeremy. (This used to be commit db3dde026b84aa28c2d7a32249488f203e362497)
2007-10-10r907: fixing browse.dat bug -- don't include the resouce byte from the ↵Gerald Carter1-1/+1
netbios name when pulling a string from a packet (jra, please double check this (This used to be commit c9bef86b8b422c5cbb6e3e5d2abb96c6e4560c1e)
2004-04-01"Fixing my FORTRAN". Ensure we always have some valid char converter for theJeremy Allison1-4/+14
neccessary types before we will run at all. If we can't get one, use ASCII but complain mightily. Jeremy. (This used to be commit 37dd5e52f61e7ba1facb726ac70fc75e22608103)
2004-03-18Correctness patch from fumiya@miraclelinux.com to count characters correctly,Jeremy Allison1-0/+3
doesn't affect what got put on the wire. Jeremy. (This used to be commit e8b68ef965ea2e3bed41cb397ef32df05c631e92)
2004-03-17Remove excess logging when probing for the length of the next mb char.Jeremy Allison1-0/+3
Jeremy. (This used to be commit 6339c4690aef7692571dd4c65dd0a12d56a7ffab)
2004-03-17Change check_path_syntax() to use the new next_mb_char_size() functionJeremy Allison1-20/+4
to make it generic. Remove the mb-codepage "blacklist". Alexander, please check this fix as it reverts your blacklist changes, but I'm hoping it fixes the problem in a more generic way for all charsets. I'm not trying to trample on your (excellent!) work here, just make things more generic without special cases. Jeremy. (This used to be commit 5a9324525acc02e6bf14528679816b35929a564e)
2004-03-16Add function next_mb_char_size() that returns a size_t of the number ofJeremy Allison1-0/+24
bytes in the mb character at a pointer. Will be useful in fixing check_path_syntax() to not use a "blacklist". Also re-added my (C) to reply.c. I mean, really - I've been adding code to the file for over 10 years and I recognise many of the fuctions as mine ! :-). Jeremy. (This used to be commit d2b2a39fd2f2e06cc4aebf081876985f0b28b477)
2004-03-16Fix check_path_syntax() for multibyte encodings which have no '\' as second ↵Alexander Bokovoy1-0/+20
byte. This is intermediate fix as discussed with Jeremy until we move check_path_syntax() to UCS2 internally where all ambiguity is resolved. Please add other encodings into charcnv.c with such property.' ' (This used to be commit 2c404f6ba988d68c6f44df9409c0de319553de10)
2004-03-13Ensure we don't truncate strcmps to nstring anymore...Jeremy Allison1-0/+2
Jeremy. (This used to be commit d7cf64b1e4e501bcd01ddc8279babc65d894a4b3)
2004-03-13Modified fix for bugid #784. Based on a patch from moriyama@miraclelinux.com ↵Jeremy Allison1-3/+6
(MORIYAMA Masayuki). Don't use nstrings to hold workgroup and netbios names. The problem with them is that MB netbios and workgroup names in unix charset (particularly utf8) may be up to 3x bigger than the name when represented in dos charset (ie. cp932). So go back to using fstrings for these but translate into nstrings (ie. 16 byte length values) for transport on the wire. Jeremy. (This used to be commit b4ea493599ab414f7828b83f40a5a8b43479ff64)
2004-03-13First part of patch from moriyama@miraclelinux.com (MORIYAMA Masayuki) toJeremy Allison1-1/+29
fix up netbios names with mb strings. Includes reformat of libsmb/nmblib.c so it's readable. Jeremy. (This used to be commit 966e49a48c352563cdd7f75fe2768f2d6612ec7e)