diff options
author | Andrew Tridgell <tridge@samba.org> | 2000-01-05 06:36:36 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2000-01-05 06:36:36 +0000 |
commit | 5e9f5591873fc5c5b5c8dbb0e29a080b8afe9966 (patch) | |
tree | 1760a4d063f1b5adf53761dce6ea93d028e45201 /source3/include | |
parent | 1f438ffb7ea20673dcd9975528769a0321236a24 (diff) | |
download | samba-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.h | 1 | ||||
-rw-r--r-- | source3/include/proto.h | 7 | ||||
-rw-r--r-- | source3/include/talloc.h | 32 |
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; + |