You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
7 years ago
|
autofs-5.1.0 - fix leak in parse_mount()
|
||
|
|
||
|
From: Ian Kent <ikent@redhat.com>
|
||
|
|
||
|
Fix a potential memory leak of the allocated mount location
|
||
|
in modules/parse_sun.c:parse_mount().
|
||
|
---
|
||
|
CHANGELOG | 1 +
|
||
|
modules/parse_sun.c | 8 ++++++--
|
||
|
2 files changed, 7 insertions(+), 2 deletions(-)
|
||
|
|
||
|
--- autofs-5.0.7.orig/CHANGELOG
|
||
|
+++ autofs-5.0.7/CHANGELOG
|
||
|
@@ -144,6 +144,7 @@
|
||
|
- check options length before use in parse_amd.c.
|
||
|
- fix some out of order evaluations in parse_amd.c.
|
||
|
- fix copy and paste error in dup_defaults_entry().
|
||
|
+- fix leak in parse_mount().
|
||
|
|
||
|
25/07/2012 autofs-5.0.7
|
||
|
=======================
|
||
|
--- autofs-5.0.7.orig/modules/parse_sun.c
|
||
|
+++ autofs-5.0.7/modules/parse_sun.c
|
||
|
@@ -1567,7 +1567,10 @@ int parse_mount(struct autofs_point *ap,
|
||
|
*/
|
||
|
if ((strstr(options, "fstype=autofs") &&
|
||
|
strstr(options, "hosts"))) {
|
||
|
- loc = NULL;
|
||
|
+ if (loc) {
|
||
|
+ free(loc);
|
||
|
+ loc = NULL;
|
||
|
+ }
|
||
|
loclen = 0;
|
||
|
} else {
|
||
|
loclen = strlen(loc);
|
||
|
@@ -1591,7 +1594,8 @@ int parse_mount(struct autofs_point *ap,
|
||
|
rv = sun_mount(ap, ap->path, name, name_len,
|
||
|
loc, loclen, options, ctxt);
|
||
|
|
||
|
- free(loc);
|
||
|
+ if (loc)
|
||
|
+ free(loc);
|
||
|
free(options);
|
||
|
pthread_setcancelstate(cur_state, NULL);
|
||
|
}
|