diff options
author | brian <brian@FreeBSD.org> | 2004-10-11 10:21:53 +0000 |
---|---|---|
committer | brian <brian@FreeBSD.org> | 2004-10-11 10:21:53 +0000 |
commit | 0f52c1eaebbd01355cf73722835b85621294b363 (patch) | |
tree | 5e96cf5bbe789a617012de384e7bdedd5def3d16 /usr.sbin | |
parent | 91c64388daaf191322de530515d83fa4c451f656 (diff) | |
download | FreeBSD-src-0f52c1eaebbd01355cf73722835b85621294b363.zip FreeBSD-src-0f52c1eaebbd01355cf73722835b85621294b363.tar.gz |
Handle a malloc() failure when allocating urgent ports
PR: 59995
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/ppp/ncp.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/usr.sbin/ppp/ncp.c b/usr.sbin/ppp/ncp.c index 202f1c3..1c12fc5 100644 --- a/usr.sbin/ppp/ncp.c +++ b/usr.sbin/ppp/ncp.c @@ -98,10 +98,15 @@ ncp_Init(struct ncp *ncp, struct bundle *bundle) ncp->afq = AF_INET; ncp->route = NULL; - ncp->cfg.urgent.tcp.nports = ncp->cfg.urgent.tcp.maxports = NDEFTCPPORTS; ncp->cfg.urgent.tcp.port = (u_short *)malloc(NDEFTCPPORTS * sizeof(u_short)); - memcpy(ncp->cfg.urgent.tcp.port, default_urgent_tcp_ports, - NDEFTCPPORTS * sizeof(u_short)); + if (ncp->cfg.urgent.tcp.port == NULL) { + log_Printf(LogERROR, "ncp_Init: Out of memory allocating urgent ports\n"); + ncp->cfg.urgent.tcp.nports = ncp->cfg.urgent.tcp.maxports = 0; + } else { + ncp->cfg.urgent.tcp.nports = ncp->cfg.urgent.tcp.maxports = NDEFTCPPORTS; + memcpy(ncp->cfg.urgent.tcp.port, default_urgent_tcp_ports, + NDEFTCPPORTS * sizeof(u_short)); + } ncp->cfg.urgent.tos = 1; ncp->cfg.urgent.udp.nports = ncp->cfg.urgent.udp.maxports = 0; |