i was to onervous to try the real patch for now. so i just quickly hacked
in another buffer using the MAX_IFC_LEN. so far it seems to be happy. i
guess i'll find out about the new malloc setup when i go to 5.3.
diff -ru autofs-5.0.1/modules/replicated.c autofs-new/modules/replicated.c
--- autofs-5.0.1/modules/replicated.c 2008-09-16 12:08:03.000000000 -0700
+++ autofs-new/modules/replicated.c 2008-09-17 08:01:58.000000000 -0700
@@ -99,7 +99,7 @@
{
struct sockaddr_in *msk_addr, *if_addr;
struct in_addr *hst_addr;
- char tmp[20], buf[MAX_ERR_BUF], *ptr;
+ char tmp[20], buf[MAX_ERR_BUF], ibuf[MAX_IFC_BUF], *ptr;
struct ifconf ifc;
struct ifreq *ifr, nmptr;
int sock, cl_flags, ret, i;
@@ -122,8 +122,8 @@
fcntl(sock, F_SETFD, cl_flags);
}
- ifc.ifc_len = sizeof(buf);
- ifc.ifc_req = (struct ifreq *) buf;
+ ifc.ifc_len = sizeof(ibuf);
+ ifc.ifc_req = (struct ifreq *) ibuf;
ret = ioctl(sock, SIOCGIFCONF, &ifc);
if (ret == -1) {
char *estr = strerror_r(errno, buf, MAX_ERR_BUF);
@@ -138,7 +138,7 @@
i = 0;
ptr = (char *) &ifc.ifc_buf[0];
- while (ptr < buf + ifc.ifc_len) {
+ while (ptr < ibuf + ifc.ifc_len) {
ifr = (struct ifreq *) ptr;
switch (ifr->ifr_addr.sa_family) {
@@ -162,7 +162,7 @@
i = 0;
ptr = (char *) &ifc.ifc_buf[0];
- while (ptr < buf + ifc.ifc_len) {
+ while (ptr < ibuf + ifc.ifc_len) {
ifr = (struct ifreq *) ptr;
switch (ifr->ifr_addr.sa_family) {
_______________________________________________
autofs mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/autofs