summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2000-01-05 06:36:36 +0000
committerAndrew Tridgell <tridge@samba.org>2000-01-05 06:36:36 +0000
commit5e9f5591873fc5c5b5c8dbb0e29a080b8afe9966 (patch)
tree1760a4d063f1b5adf53761dce6ea93d028e45201 /source3/include
parent1f438ffb7ea20673dcd9975528769a0321236a24 (diff)
downloadsamba-5e9f5591873fc5c5b5c8dbb0e29a080b8afe9966.tar.gz
samba-5e9f5591873fc5c5b5c8dbb0e29a080b8afe9966.tar.bz2
samba-5e9f5591873fc5c5b5c8dbb0e29a080b8afe9966.zip
implemented talloc() as described on samba-technical. This fixes the
lp_string() bug properly. we still need to add lp_talloc_free() calls in all the main event loops, I've only put it in smbd and nmbd thus far. (This used to be commit aa7f81552540f5dca2c146f5edd805611d5b390f)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/includes.h1
-rw-r--r--source3/include/proto.h7
-rw-r--r--source3/include/talloc.h32
3 files changed, 40 insertions, 0 deletions
diff --git a/source3/include/includes.h b/source3/include/includes.h
index 3e9010bf54..7986c12c91 100644
--- a/source3/include/includes.h
+++ b/source3/include/includes.h
@@ -611,6 +611,7 @@ extern int errno;
#include "ubi_dLinkList.h"
#include "dlinklist.h"
#include "../tdb/tdb.h"
+#include "talloc.h"
#include "interfaces.h"
#ifdef HAVE_FNMATCH
diff --git a/source3/include/proto.h b/source3/include/proto.h
index bb1d5477df..0222e890d2 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -223,6 +223,12 @@ smb_ucs2_t *wsys_getwd(smb_ucs2_t *s);
int wsys_chown(const smb_ucs2_t *wfname, uid_t uid, gid_t gid);
int wsys_chroot(const smb_ucs2_t *wfname);
+/*The following definitions come from lib/talloc.c */
+
+TALLOC_CTX *talloc_init(void);
+void *talloc(TALLOC_CTX *t, size_t size);
+void talloc_destroy(TALLOC_CTX *t);
+
/*The following definitions come from lib/time.c */
void GetTimeOfDay(struct timeval *tval);
@@ -1111,6 +1117,7 @@ void expire_workgroups_and_servers(time_t t);
/*The following definitions come from param/loadparm.c */
+void lp_talloc_free(void);
char *lp_logfile(void);
char *lp_smbrun(void);
char *lp_configfile(void);
diff --git a/source3/include/talloc.h b/source3/include/talloc.h
new file mode 100644
index 0000000000..df68166a5e
--- /dev/null
+++ b/source3/include/talloc.h
@@ -0,0 +1,32 @@
+/*
+ Unix SMB/Netbios implementation.
+ Version 3.0
+ Samba temporary memory allocation functions
+ Copyright (C) Andrew Tridgell 2000
+
+ 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 2 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, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+struct talloc_chunk {
+ struct talloc_chunk *next;
+ void *ptr;
+ size_t alloc_size;
+ size_t total_size;
+};
+
+typedef struct {
+ struct talloc_chunk *list;
+} TALLOC_CTX;
+