- multi-map doesn't pickup NIS updates automatically. - eliminate redundant DNS name lookups. - mount thread create condition handling fix. - allow directory create on NFS root. - check direct mount path length. - fix incorrect in check in get user info. - fix a couple of memory leaks.
70 lines
1.7 KiB
Diff
70 lines
1.7 KiB
Diff
autofs-5.0.3 - fix a couple of memory leaks
|
|
|
|
From: Ian Kent <raven@themaw.net>
|
|
|
|
|
|
---
|
|
|
|
CHANGELOG | 2 ++
|
|
daemon/lookup.c | 5 ++++-
|
|
modules/parse_sun.c | 14 ++++++++++----
|
|
3 files changed, 16 insertions(+), 5 deletions(-)
|
|
|
|
|
|
diff --git a/CHANGELOG b/CHANGELOG
|
|
index 82b080c..5901c75 100644
|
|
--- a/CHANGELOG
|
|
+++ b/CHANGELOG
|
|
@@ -21,6 +21,8 @@
|
|
- additional fix incorrect pthreads condition handling for mount requests.
|
|
- allow mount point directory creation for clients with an NFS root.
|
|
- fix direct mount path length not being checked.
|
|
+- fix incorrect if check in get user info.
|
|
+- fix couple of memory leaks.
|
|
|
|
14/01/2008 autofs-5.0.3
|
|
-----------------------
|
|
diff --git a/daemon/lookup.c b/daemon/lookup.c
|
|
index eac6053..29a1491 100644
|
|
--- a/daemon/lookup.c
|
|
+++ b/daemon/lookup.c
|
|
@@ -996,8 +996,11 @@ int lookup_prune_cache(struct autofs_point *ap, time_t age)
|
|
|
|
key = strdup(me->key);
|
|
me = cache_enumerate(mc, me);
|
|
- if (!key || *key == '*')
|
|
+ if (!key || *key == '*') {
|
|
+ if (key)
|
|
+ free(key);
|
|
continue;
|
|
+ }
|
|
|
|
path = make_fullpath(ap->path, key);
|
|
if (!path) {
|
|
diff --git a/modules/parse_sun.c b/modules/parse_sun.c
|
|
index 4241f16..d839694 100644
|
|
--- a/modules/parse_sun.c
|
|
+++ b/modules/parse_sun.c
|
|
@@ -462,11 +462,17 @@ static char *concat_options(char *left, char *right)
|
|
char buf[MAX_ERR_BUF];
|
|
char *ret;
|
|
|
|
- if (left == NULL || *left == '\0')
|
|
- return strdup(right);
|
|
+ if (left == NULL || *left == '\0') {
|
|
+ ret = strdup(right);
|
|
+ free(right);
|
|
+ return ret;
|
|
+ }
|
|
|
|
- if (right == NULL || *right == '\0')
|
|
- return strdup(left);
|
|
+ if (right == NULL || *right == '\0') {
|
|
+ ret = strdup(left);
|
|
+ free(left);
|
|
+ return ret;
|
|
+ }
|
|
|
|
ret = malloc(strlen(left) + strlen(right) + 2);
|
|
|