diff options
author | Andrew Tridgell <tridge@samba.org> | 2004-09-27 01:36:19 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:59:20 -0500 |
commit | 5b44130afad1bb1764d986de3ef0e8e04b0e7357 (patch) | |
tree | afea820fdfd1021b5ee55b2fa37ba1b32d334e46 /source4/ntvfs/simple | |
parent | f095a8e748a87de9f4cde117df13e8dccd8aeaa9 (diff) | |
download | samba-5b44130afad1bb1764d986de3ef0e8e04b0e7357.tar.gz samba-5b44130afad1bb1764d986de3ef0e8e04b0e7357.tar.bz2 samba-5b44130afad1bb1764d986de3ef0e8e04b0e7357.zip |
r2671: we're getting too many errors caused by the talloc_realloc() API not
taking a context (so when you pass a NULL pointer you end up with
memory in a top level context). Fixed it by changing the API to take a
context. The context is only used if the pointer you are reallocing is
NULL.
(This used to be commit 8dc23821c9f54b2f13049b5e608a0cafb81aa540)
Diffstat (limited to 'source4/ntvfs/simple')
-rw-r--r-- | source4/ntvfs/simple/svfs.h | 2 | ||||
-rw-r--r-- | source4/ntvfs/simple/svfs_util.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/source4/ntvfs/simple/svfs.h b/source4/ntvfs/simple/svfs.h index 33b7cb7011..d3bafb42e3 100644 --- a/source4/ntvfs/simple/svfs.h +++ b/source4/ntvfs/simple/svfs.h @@ -17,7 +17,7 @@ struct svfs_private { struct svfs_dir { uint_t count; char *unix_dir; - struct { + struct svfs_dirfile { char *name; struct stat st; } *files; diff --git a/source4/ntvfs/simple/svfs_util.c b/source4/ntvfs/simple/svfs_util.c index 2e64920fc8..b6b7171487 100644 --- a/source4/ntvfs/simple/svfs_util.c +++ b/source4/ntvfs/simple/svfs_util.c @@ -61,7 +61,7 @@ struct svfs_dir *svfs_list_unix(TALLOC_CTX *mem_ctx, struct smbsrv_request *req, uint_t allocated = 0; char *low_mask; - dir = talloc(mem_ctx, sizeof(struct svfs_dir)); + dir = talloc_p(mem_ctx, struct svfs_dir); if (!dir) { return NULL; } dir->count = 0; @@ -105,7 +105,7 @@ struct svfs_dir *svfs_list_unix(TALLOC_CTX *mem_ctx, struct smbsrv_request *req, if (dir->count >= allocated) { allocated = (allocated + 100) * 1.2; - dir->files = talloc_realloc(dir->files, allocated * sizeof(dir->files[0])); + dir->files = talloc_realloc_p(dir, dir->files, struct svfs_dirfile, allocated); if (!dir->files) { closedir(odir); return NULL; |