diff --git a/lib/libuv.c b/lib/libuv.c index 2870316171709bfc06b634740e121b16bc805d72..bdbd88de667a082a9cb8078daf1ae18cbf4c68ba 100644 --- a/lib/libuv.c +++ b/lib/libuv.c @@ -151,6 +151,10 @@ lws_uv_initloop(struct lws_context *context, uv_loop_t *loop, uv_signal_cb cb, if (!loop) { loop = lws_malloc(sizeof(*loop)); + if (!loop) { + lwsl_err("OOM\n"); + return -1; + } uv_loop_init(loop); pt->ev_loop_foreign = 0; } else diff --git a/lib/service.c b/lib/service.c index ceab37a61437a4f90902a100c3cdf8a46148835e..15ec0f432ec9d8a70d11b183a8bd684e8d4734be 100644 --- a/lib/service.c +++ b/lib/service.c @@ -349,6 +349,8 @@ int lws_rxflow_cache(struct lws *wsi, unsigned char *buf, int n, int len) /* a new rxflow, buffer it and warn caller */ lwsl_info("new rxflow input buffer len %d\n", len - n); wsi->rxflow_buffer = lws_malloc(len - n); + if (!wsi->rxflow_buffer) + return -1; wsi->rxflow_len = len - n; wsi->rxflow_pos = 0; memcpy(wsi->rxflow_buffer, buf + n, len - n);