mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-01 13:10:43 +00:00
Merge pull request #2172 from cesanta/null_mip
Check for calloc() failure in MIP
This commit is contained in:
2 files changed
+10
No files matched your search
@@ -7914,6 +7914,10 @@ static void settmout(struct mg_connection *c, uint8_t type) {
|
|||||||
static struct mg_connection *accept_conn(struct mg_connection *lsn,
|
static struct mg_connection *accept_conn(struct mg_connection *lsn,
|
||||||
struct pkt *pkt) {
|
struct pkt *pkt) {
|
||||||
struct mg_connection *c = mg_alloc_conn(lsn->mgr);
|
struct mg_connection *c = mg_alloc_conn(lsn->mgr);
|
||||||
|
if (c == NULL) {
|
||||||
|
MG_ERROR(("OOM"));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
struct connstate *s = (struct connstate *) (c + 1);
|
struct connstate *s = (struct connstate *) (c + 1);
|
||||||
s->seq = mg_ntohl(pkt->tcp->ack), s->ack = mg_ntohl(pkt->tcp->seq);
|
s->seq = mg_ntohl(pkt->tcp->ack), s->ack = mg_ntohl(pkt->tcp->seq);
|
||||||
memcpy(s->mac, pkt->eth->src, sizeof(s->mac));
|
memcpy(s->mac, pkt->eth->src, sizeof(s->mac));
|
||||||
@@ -8273,6 +8277,7 @@ void mg_tcpip_init(struct mg_mgr *mgr, struct mg_tcpip_if *ifp) {
|
|||||||
mg_random(&ifp->eport, sizeof(ifp->eport)); // Random from 0 to 65535
|
mg_random(&ifp->eport, sizeof(ifp->eport)); // Random from 0 to 65535
|
||||||
ifp->eport |=
|
ifp->eport |=
|
||||||
MG_EPHEMERAL_PORT_BASE; // Random from MG_EPHEMERAL_PORT_BASE to 65535
|
MG_EPHEMERAL_PORT_BASE; // Random from MG_EPHEMERAL_PORT_BASE to 65535
|
||||||
|
if (ifp->tx.ptr == NULL || ifp->recv_queue.buf == NULL) MG_ERROR(("OOM"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -470,6 +470,10 @@ static void settmout(struct mg_connection *c, uint8_t type) {
|
|||||||
static struct mg_connection *accept_conn(struct mg_connection *lsn,
|
static struct mg_connection *accept_conn(struct mg_connection *lsn,
|
||||||
struct pkt *pkt) {
|
struct pkt *pkt) {
|
||||||
struct mg_connection *c = mg_alloc_conn(lsn->mgr);
|
struct mg_connection *c = mg_alloc_conn(lsn->mgr);
|
||||||
|
if (c == NULL) {
|
||||||
|
MG_ERROR(("OOM"));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
struct connstate *s = (struct connstate *) (c + 1);
|
struct connstate *s = (struct connstate *) (c + 1);
|
||||||
s->seq = mg_ntohl(pkt->tcp->ack), s->ack = mg_ntohl(pkt->tcp->seq);
|
s->seq = mg_ntohl(pkt->tcp->ack), s->ack = mg_ntohl(pkt->tcp->seq);
|
||||||
memcpy(s->mac, pkt->eth->src, sizeof(s->mac));
|
memcpy(s->mac, pkt->eth->src, sizeof(s->mac));
|
||||||
@@ -829,6 +833,7 @@ void mg_tcpip_init(struct mg_mgr *mgr, struct mg_tcpip_if *ifp) {
|
|||||||
mg_random(&ifp->eport, sizeof(ifp->eport)); // Random from 0 to 65535
|
mg_random(&ifp->eport, sizeof(ifp->eport)); // Random from 0 to 65535
|
||||||
ifp->eport |=
|
ifp->eport |=
|
||||||
MG_EPHEMERAL_PORT_BASE; // Random from MG_EPHEMERAL_PORT_BASE to 65535
|
MG_EPHEMERAL_PORT_BASE; // Random from MG_EPHEMERAL_PORT_BASE to 65535
|
||||||
|
if (ifp->tx.ptr == NULL || ifp->recv_queue.buf == NULL) MG_ERROR(("OOM"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user