From 60d656fb0f870a8c228d6fcc72c9e3e166f33231 Mon Sep 17 00:00:00 2001
From: Andy Green <andy@warmcat.com>
Date: Thu, 12 May 2016 21:54:29 +0800
Subject: [PATCH] check oom on lws_malloc

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/libuv.c   | 4 ++++
 lib/service.c | 2 ++
 2 files changed, 6 insertions(+)

diff --git a/lib/libuv.c b/lib/libuv.c
index 28703161..bdbd88de 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 ceab37a6..15ec0f43 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);
-- 
GitLab