summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2011-05-03 12:59:36 +1000
committerAndrew Bartlett <abartlet@samba.org>2011-05-03 07:37:07 +0200
commit2c32534d5ba5d009c48f377aa5aea8e77b4fa316 (patch)
treefe6dab5d77474d934bce7b30d4204cb2bffab2b0
parent86a62ab4345b8567a346587d2ddf575523d0b5f8 (diff)
downloadsamba-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.c2
-rwxr-xr-xlib/util/wscript_build4
-rw-r--r--source3/Makefile.in1
-rw-r--r--source3/lib/util_str.c86
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.
**/