I guess 'c' is NULL at this point. Please ignore my last patch and
try this one instead.
Thanks.
H.J.
---
Index: utils/mountd/auth.c
===================================================================
RCS file: /home/work/cvs/linux/knfsd/utils/mountd/auth.c,v
retrieving revision 1.7
diff -u -p -r1.7 auth.c
--- auth.c 1998/10/10 23:57:25 1.7
+++ auth.c 1998/10/12 15:19:14
@@ -70,11 +70,15 @@ auth_authenticate_internal(char *what, s
if (!(exp = export_find(*hpp, path))) {
xlog(L_WARNING, "refused %s request from %s: no export entry",
what, (*hpp)->h_name);
+ free (*hpp);
+ *hpp = NULL;
return NULL;
}
if (!exp->m_mayexport) {
xlog(L_WARNING, "refused %s request from %s: not exported",
what, (*hpp)->h_name);
+ free (*hpp);
+ *hpp = NULL;
return NULL;
}
@@ -83,6 +87,8 @@ auth_authenticate_internal(char *what, s
ntohs(caller->sin_port) >= IPPORT_RESERVED)) {
xlog(L_WARNING, "refused %s request from %s: illegal port %d",
what, (*hpp)->h_name, ntohs(caller->sin_port));
+ free (*hpp);
+ *hpp = NULL;
return NULL;
}
@@ -106,8 +112,10 @@ auth_authenticate(char *what, struct soc
/* Try the longest matching exported pathname. */
while (1) {
- if (hp)
+ if (hp) {
free (hp);
+ hp = NULL;
+ }
exp = auth_authenticate_internal(what, caller, epath, &hp);
if (exp) {
if (p) {
@@ -128,6 +136,8 @@ auth_authenticate(char *what, struct soc
if (p == epath) p++;
*p = '\0';
}
+ if (hp)
+ free (hp);
return exp;
}
Index: utils/mountd/mountd.c
===================================================================
RCS file: /home/work/cvs/linux/knfsd/utils/mountd/mountd.c,v
retrieving revision 1.8
diff -u -p -r1.8 mountd.c
--- mountd.c 1998/10/01 15:03:28 1.8
+++ mountd.c 1998/10/12 15:36:49
@@ -343,7 +343,12 @@ get_exportlist(void)
else {
c = n->gr_next;
xfree (n);
- n = c->gr_next;
+ if (c)
+ n = c->gr_next;
+ else {
+ xfree (hp);
+ break;
+ }
}
}
else {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/