diff options
author | Andrew Bartlett <abartlet@samba.org> | 2011-05-03 12:59:36 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2011-05-03 07:37:07 +0200 |
commit | 2c32534d5ba5d009c48f377aa5aea8e77b4fa316 (patch) | |
tree | fe6dab5d77474d934bce7b30d4204cb2bffab2b0 | |
parent | 86a62ab4345b8567a346587d2ddf575523d0b5f8 (diff) | |
download | samba-2c32534d5ba5d009c48f377aa5aea8e77b4fa316.tar.gz samba-2c32534d5ba5d009c48f377aa5aea8e77b4fa316.tar.bz2 samba-2c32534d5ba5d009c48f377aa5aea8e77b4fa316.zip |
lib/util Use lib/util/util_str.c in common, including strequal()
strequal() is now implemented in terms of strcasecmp_m() which is
tested in smbtorture and which does not talloc() for ASCII or
non-ASCII comparions, and has an ASCII fast-path.
Andrew Bartlett
-rw-r--r-- | lib/util/util_str.c | 2 | ||||
-rwxr-xr-x | lib/util/wscript_build | 4 | ||||
-rw-r--r-- | source3/Makefile.in | 1 | ||||
-rw-r--r-- | source3/lib/util_str.c | 86 |
4 files changed, 4 insertions, 89 deletions
diff --git a/lib/util/util_str.c b/lib/util/util_str.c index 34dd5be56e..9842f11653 100644 --- a/lib/util/util_str.c +++ b/lib/util/util_str.c @@ -236,6 +236,6 @@ _PUBLIC_ bool strequal(const char *s1, const char *s2) if (!s1 || !s2) return false; - return strcasecmp(s1,s2) == 0; + return strcasecmp_m(s1,s2) == 0; } diff --git a/lib/util/wscript_build b/lib/util/wscript_build index 561dcc4379..1abaf3dcd5 100755 --- a/lib/util/wscript_build +++ b/lib/util/wscript_build @@ -5,11 +5,11 @@ common_util_sources = '''talloc_stack.c smb_threads.c xfile.c data_blob.c genrand.c fsusage.c blocking.c become_daemon.c signal.c system.c params.c util.c util_id.c util_net.c util_strlist.c idtree.c debug.c fault.c base64.c - util_str_common.c substitute.c''' + util_str.c util_str_common.c substitute.c''' common_util_headers = 'debug.h' common_util_public_deps = 'talloc pthread LIBCRYPTO' -s4_util_sources = '''dprintf.c ms_fnmatch.c parmlist.c util_str.c''' +s4_util_sources = '''dprintf.c ms_fnmatch.c parmlist.c''' s4_util_deps = 'DYNCONFIG' s4_util_public_deps = 'talloc CHARSET execinfo uid_wrapper' s4_util_public_headers = 'attr.h byteorder.h data_blob.h memory.h safe_string.h time.h talloc_stack.h xfile.h dlinklist.h util.h' diff --git a/source3/Makefile.in b/source3/Makefile.in index 5e7b63dae9..9b4518089f 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -457,6 +457,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \ lib/bitmap.o lib/dprintf.o $(UTIL_REG_OBJ) \ lib/wins_srv.o \ lib/util_str.o ../lib/util/util_str_common.o \ + ../lib/util/util_str.o \ ../lib/util/base64.o lib/util_sid.o \ ../lib/util/charset/util_unistr.o \ ../lib/util/charset/util_unistr_w.o ../lib/util/charset/codepoints.o ../lib/util/charset/util_str.o lib/util_file.o \ diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c index 4d76cc0a9f..583eea40d9 100644 --- a/source3/lib/util_str.c +++ b/source3/lib/util_str.c @@ -179,21 +179,6 @@ int StrnCaseCmp(const char *s, const char *t, size_t len) } /** - * Compare 2 strings. - * - * @note The comparison is case-insensitive. - **/ -bool strequal(const char *s1, const char *s2) -{ - if (s1 == s2) - return(true); - if (!s1 || !s2) - return(false); - - return(StrCaseCmp(s1,s2)==0); -} - -/** * Compare 2 strings up to and including the nth char. * * @note The comparison is case-insensitive. @@ -328,77 +313,6 @@ bool trim_char(char *s,char cfront,char cback) } /** - Safe string copy into a known length string. maxlength does not - include the terminating zero. -**/ - -char *safe_strcpy_fn(char *dest, - const char *src, - size_t maxlength) -{ - size_t len; - - if (!dest) { - smb_panic("ERROR: NULL dest in safe_strcpy"); - } - - if (!src) { - *dest = 0; - return dest; - } - - len = strnlen(src, maxlength+1); - - if (len > maxlength) { - DEBUG(0,("ERROR: string overflow by " - "%lu (%lu - %lu) in safe_strcpy [%.50s]\n", - (unsigned long)(len-maxlength), (unsigned long)len, - (unsigned long)maxlength, src)); - len = maxlength; - } - - memmove(dest, src, len); - dest[len] = 0; - return dest; -} - -/** - Safe string cat into a string. maxlength does not - include the terminating zero. -**/ -char *safe_strcat_fn(char *dest, - const char *src, - size_t maxlength) -{ - size_t src_len, dest_len; - - if (!dest) { - smb_panic("ERROR: NULL dest in safe_strcat"); - } - - if (!src) - return dest; - - src_len = strnlen(src, maxlength + 1); - dest_len = strnlen(dest, maxlength + 1); - - if (src_len + dest_len > maxlength) { - DEBUG(0,("ERROR: string overflow by %d " - "in safe_strcat [%.50s]\n", - (int)(src_len + dest_len - maxlength), src)); - if (maxlength > dest_len) { - memcpy(&dest[dest_len], src, maxlength - dest_len); - } - dest[maxlength] = 0; - return NULL; - } - - memcpy(&dest[dest_len], src, src_len); - dest[dest_len + src_len] = 0; - return dest; -} - -/** Like strncpy but always null terminates. Make sure there is room! The variable n should always be one less than the available size. **/ |