summaryrefslogtreecommitdiff
path: root/source3/smbwrapper/shared.c
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2001-10-11 12:33:26 +0000
committerSimo Sorce <idra@samba.org>2001-10-11 12:33:26 +0000
commit49307c26789b3061780d160f4c6fa4863853eddd (patch)
treeda63221adcfa07ead7e7ec93b788a54b6c00c5bc /source3/smbwrapper/shared.c
parent8edc45ec4c467e5069875808d0abd9452e7b056c (diff)
downloadsamba-49307c26789b3061780d160f4c6fa4863853eddd.tar.gz
samba-49307c26789b3061780d160f4c6fa4863853eddd.tar.bz2
samba-49307c26789b3061780d160f4c6fa4863853eddd.zip
remove unused function in mangle.c
fix some alloc leaks spotted by andreas moroder. (This used to be commit 39409a20f69078709c63f6f867c042e66d5c7de3)
Diffstat (limited to 'source3/smbwrapper/shared.c')
-rw-r--r--source3/smbwrapper/shared.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/source3/smbwrapper/shared.c b/source3/smbwrapper/shared.c
index a10ef05bfc..90accbb503 100644
--- a/source3/smbwrapper/shared.c
+++ b/source3/smbwrapper/shared.c
@@ -104,6 +104,7 @@ char *smbw_getshared(const char *name)
{
int i;
struct stat st;
+ char *var;
lockit();
@@ -111,8 +112,9 @@ char *smbw_getshared(const char *name)
if (fstat(shared_fd, &st)) goto failed;
if (st.st_size != shared_size) {
- variables = (char *)Realloc(variables, st.st_size);
- if (!variables) goto failed;
+ var = (char *)Realloc(variables, st.st_size);
+ if (!var) goto failed;
+ else variables = var;
shared_size = st.st_size;
lseek(shared_fd, 0, SEEK_SET);
if (read(shared_fd, variables, shared_size) != shared_size) {
@@ -156,6 +158,7 @@ set a variable in the shared area
void smbw_setshared(const char *name, const char *val)
{
int l1, l2;
+ char *var;
/* we don't allow variable overwrite */
if (smbw_getshared(name)) return;
@@ -165,12 +168,14 @@ void smbw_setshared(const char *name, const char *val)
l1 = strlen(name)+1;
l2 = strlen(val)+1;
- variables = (char *)Realloc(variables, shared_size + l1+l2+4);
+ var = (char *)Realloc(variables, shared_size + l1+l2+4);
- if (!variables) {
+ if (!var) {
DEBUG(0,("out of memory in smbw_setshared\n"));
exit(1);
}
+
+ variables = var;
SSVAL(&variables[shared_size], 0, l1);
SSVAL(&variables[shared_size], 2, l2);