summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/Makefile.in2
-rw-r--r--source3/lib/string_init.c77
-rw-r--r--source3/lib/util_str.c52
-rwxr-xr-xsource3/wscript_build5
4 files changed, 82 insertions, 54 deletions
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 03b427389a..564c37a7be 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -456,7 +456,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \
../libds/common/flag_mapping.o \
lib/access.o lib/smbrun.o \
lib/bitmap.o lib/dprintf.o $(UTIL_REG_OBJ) \
- lib/wins_srv.o \
+ lib/wins_srv.o lib/string_init.o \
lib/util_str.o ../lib/util/util_str_common.o \
../lib/util/util_str.o \
../lib/util/base64.o lib/util_sid.o \
diff --git a/source3/lib/string_init.c b/source3/lib/string_init.c
new file mode 100644
index 0000000000..40a6ef059b
--- /dev/null
+++ b/source3/lib/string_init.c
@@ -0,0 +1,77 @@
+/*
+ Unix SMB/CIFS implementation.
+ Samba utility functions
+
+ Copyright (C) Andrew Tridgell 1992-2001
+ Copyright (C) Simo Sorce 2001-2002
+ Copyright (C) Martin Pool 2003
+ Copyright (C) James Peach 2006
+ Copyright (C) Jeremy Allison 1992-2007
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+
+/* this is used to prevent lots of mallocs of size 1 */
+static const char null_string[] = "";
+
+/**
+ Set a string value, allocing the space for the string
+**/
+
+static bool string_init(char **dest,const char *src)
+{
+ size_t l;
+
+ if (!src)
+ src = "";
+
+ l = strlen(src);
+
+ if (l == 0) {
+ *dest = discard_const_p(char, null_string);
+ } else {
+ (*dest) = SMB_STRDUP(src);
+ if ((*dest) == NULL) {
+ DEBUG(0,("Out of memory in string_init\n"));
+ return false;
+ }
+ }
+ return(true);
+}
+
+/**
+ Free a string value.
+**/
+
+void string_free(char **s)
+{
+ if (!s || !(*s))
+ return;
+ if (*s == null_string)
+ *s = NULL;
+ SAFE_FREE(*s);
+}
+
+/**
+ Set a string value, deallocating any existing space, and allocing the space
+ for the string
+**/
+
+bool string_set(char **dest,const char *src)
+{
+ string_free(dest);
+ return(string_init(dest,src));
+}
diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c
index bb8482ca0b..82d814ad9d 100644
--- a/source3/lib/util_str.c
+++ b/source3/lib/util_str.c
@@ -227,58 +227,6 @@ bool in_list(const char *s, const char *list, bool casesensitive)
return ret;
}
-/* this is used to prevent lots of mallocs of size 1 */
-static const char null_string[] = "";
-
-/**
- Set a string value, allocing the space for the string
-**/
-
-static bool string_init(char **dest,const char *src)
-{
- size_t l;
-
- if (!src)
- src = "";
-
- l = strlen(src);
-
- if (l == 0) {
- *dest = discard_const_p(char, null_string);
- } else {
- (*dest) = SMB_STRDUP(src);
- if ((*dest) == NULL) {
- DEBUG(0,("Out of memory in string_init\n"));
- return false;
- }
- }
- return(true);
-}
-
-/**
- Free a string value.
-**/
-
-void string_free(char **s)
-{
- if (!s || !(*s))
- return;
- if (*s == null_string)
- *s = NULL;
- SAFE_FREE(*s);
-}
-
-/**
- Set a string value, deallocating any existing space, and allocing the space
- for the string
-**/
-
-bool string_set(char **dest,const char *src)
-{
- string_free(dest);
- return(string_init(dest,src));
-}
-
void fstring_sub(char *s,const char *pattern,const char *insert)
{
string_sub(s, pattern, insert, sizeof(fstring));
diff --git a/source3/wscript_build b/source3/wscript_build
index 2ee4f62fe0..5b89cf0427 100755
--- a/source3/wscript_build
+++ b/source3/wscript_build
@@ -789,7 +789,7 @@ bld.SAMBA3_SUBSYSTEM('KRBCLIENT',
bld.SAMBA3_LIBRARY('samba3core',
source=LIB_SRC,
- deps='LIBCRYPTO ndr security NDR_SECURITY samba-util NDR_MESSAGING LIBASYNC_REQ tdb-wrap3 UTIL_TDB UTIL_PW SAMBA_VERSION KRB5_WRAP flag_mapping util_reg passdb PTHREADPOOL interfaces cap',
+ deps='LIBCRYPTO ndr security NDR_SECURITY samba-util NDR_MESSAGING LIBASYNC_REQ tdb-wrap3 UTIL_TDB UTIL_PW SAMBA_VERSION KRB5_WRAP flag_mapping util_reg passdb PTHREADPOOL interfaces cap string_init',
private_library=True,
vars=locals())
@@ -984,6 +984,9 @@ bld.SAMBA3_SUBSYSTEM('tdb-wrap3',
deps='tdb-wrap',
vars=locals())
+bld.SAMBA3_SUBSYSTEM('string_init',
+ source='''lib/string_init.c''')
+
bld.SAMBA3_SUBSYSTEM('CHARSET3',
source='''lib/util_str.c lib/charcnv.c lib/fstring.c''',
public_deps='ICONV_WRAPPER samba3core CHARSET',