summaryrefslogtreecommitdiff
path: root/loadparm.c
diff options
context:
space:
mode:
authorMartin Pool <mbp@samba.org>2001-11-26 07:58:47 +0000
committerMartin Pool <mbp@samba.org>2001-11-26 07:58:47 +0000
commit3d2e458a4d66ad09932cc350359e5f273de072eb (patch)
tree53f32f1a9a03587d0c6fdf6ad4acc375e61a4954 /loadparm.c
parenta57568d7167cb54b9b0802aeabf5a424749fbd65 (diff)
downloadrsync-3d2e458a4d66ad09932cc350359e5f273de072eb.tar.gz
rsync-3d2e458a4d66ad09932cc350359e5f273de072eb.tar.bz2
rsync-3d2e458a4d66ad09932cc350359e5f273de072eb.zip
Fix a small memory leak that was causing an Insure warning.
Diffstat (limited to 'loadparm.c')
-rw-r--r--loadparm.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/loadparm.c b/loadparm.c
index b09dde6b..92b01488 100644
--- a/loadparm.c
+++ b/loadparm.c
@@ -1,6 +1,11 @@
/* This is based on loadparm.c from Samba, written by Andrew Tridgell
and Karl Auer */
+/* some fixes
+ *
+ * Copyright (C) 2001 by Martin Pool <mbp@samba.org>
+ */
+
/*
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
@@ -379,14 +384,23 @@ static void init_service(service *pservice)
copy_service(pservice,&sDefault);
}
-static void string_set(char **s, char *v)
+
+/**
+ * Assign a copy of @p v to @p *s, freeing any existing values and
+ * handling NULL strings. @p *v must be initialized when this is
+ * called, either to NULL or a malloc'd string.
+ **/
+static void string_set(char **s, const char *v)
{
if (!v) {
*s = NULL;
return;
}
+ if (*s)
+ free(*s);
*s = strdup(v);
- if (!*s) exit_cleanup(RERR_MALLOC);
+ if (!*s)
+ exit_cleanup(RERR_MALLOC);
}