MFC r298351
Avoid a possible heap overflow in our nlm code by limiting the number of service to the arbitrary value of 256. Log an appropriate message that indicates the hard limit.
This commit is contained in:
parent
12a626dd41
commit
d26ee5186f
@ -1439,6 +1439,12 @@ nlm_register_services(SVCPOOL *pool, int addr_count, char **addrs)
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
if (addr_count < 0 || addr_count > 256 ) {
|
||||
NLM_ERR("NLM: too many service addresses (%d) given, "
|
||||
"max 256 - can't start server\n", addr_count);
|
||||
return (EINVAL);
|
||||
}
|
||||
|
||||
xprts = malloc(addr_count * sizeof(SVCXPRT *), M_NLM, M_WAITOK|M_ZERO);
|
||||
for (i = 0; i < version_count; i++) {
|
||||
for (j = 0; j < addr_count; j++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user