Be extra paranoid about trusting the length returned by gethostbyaddr.
Submitted by: Julian Assange
This commit is contained in:
parent
9ae323c5f0
commit
164309e22e
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=31955
@ -45,7 +45,7 @@ static char copyright[] =
|
|||||||
static char sccsid[] = "@(#)mount_nfs.c 8.11 (Berkeley) 5/4/95";
|
static char sccsid[] = "@(#)mount_nfs.c 8.11 (Berkeley) 5/4/95";
|
||||||
*/
|
*/
|
||||||
static const char rcsid[] =
|
static const char rcsid[] =
|
||||||
"$Id: mount_nfs.c,v 1.23 1997/06/03 13:49:26 dfr Exp $";
|
"$Id: mount_nfs.c,v 1.24 1997/10/19 16:40:01 joerg Exp $";
|
||||||
#endif /* not lint */
|
#endif /* not lint */
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
@ -694,7 +694,7 @@ getnfsargs(spec, nfsargsp)
|
|||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
} else if ((hp = gethostbyname(hostp)) != NULL)
|
} else if ((hp = gethostbyname(hostp)) != NULL)
|
||||||
memmove(&saddr.sin_addr, hp->h_addr, hp->h_length);
|
memmove(&saddr.sin_addr, hp->h_addr, MIN(hp->h_length, sizeof(saddr.sin_addr)));
|
||||||
else {
|
else {
|
||||||
warnx("can't get net id for host");
|
warnx("can't get net id for host");
|
||||||
return (0);
|
return (0);
|
||||||
@ -706,7 +706,7 @@ getnfsargs(spec, nfsargsp)
|
|||||||
warnx("can't reverse resolve net address");
|
warnx("can't reverse resolve net address");
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
memmove(&saddr.sin_addr, hp->h_addr, hp->h_length);
|
memmove(&saddr.sin_addr, hp->h_addr, MIN(hp->h_length, sizeof(saddr.sin_addr)));
|
||||||
strncpy(inst, hp->h_name, INST_SZ);
|
strncpy(inst, hp->h_name, INST_SZ);
|
||||||
inst[INST_SZ - 1] = '\0';
|
inst[INST_SZ - 1] = '\0';
|
||||||
if (cp = strchr(inst, '.'))
|
if (cp = strchr(inst, '.'))
|
||||||
|
Loading…
Reference in New Issue
Block a user