diff --git a/package/gluon-autoupdater/src/respondd.c b/package/gluon-autoupdater/src/respondd.c
index 66b7a928ae952d38647b1e5f0adc09b946a306bf..74468fb122dec2e5d2737847bc7312457ad754d8 100644
--- a/package/gluon-autoupdater/src/respondd.c
+++ b/package/gluon-autoupdater/src/respondd.c
@@ -36,6 +36,8 @@
 
 static struct json_object * get_autoupdater(void) {
 	struct uci_context *ctx = uci_alloc_context();
+	if (!ctx)
+		return NULL;
 	ctx->flags &= ~UCI_FLAG_STRICT;
 
 	struct uci_package *p;
diff --git a/package/gluon-mesh-batman-adv/src/respondd.c b/package/gluon-mesh-batman-adv/src/respondd.c
index 60df1523963b307cd84a648f30c53ef751a288ab..ae42a1533414644c0f45820418e3f93cd53361f0 100644
--- a/package/gluon-mesh-batman-adv/src/respondd.c
+++ b/package/gluon-mesh-batman-adv/src/respondd.c
@@ -446,6 +446,8 @@ static void count_iface_stations(size_t *wifi24, size_t *wifi5, const char *ifna
 
 static void count_stations(size_t *wifi24, size_t *wifi5) {
 	struct uci_context *ctx = uci_alloc_context();
+	if (!ctx)
+		return;
 	ctx->flags &= ~UCI_FLAG_STRICT;
 
 
diff --git a/package/gluon-mesh-vpn-fastd/src/respondd.c b/package/gluon-mesh-vpn-fastd/src/respondd.c
index 87d69e07e6b63903042eb506479c51787bb1bc78..2103dff7fa933821799ee182f80e300668681ad6 100644
--- a/package/gluon-mesh-vpn-fastd/src/respondd.c
+++ b/package/gluon-mesh-vpn-fastd/src/respondd.c
@@ -77,6 +77,8 @@ static struct json_object * get_fastd(void) {
 	bool enabled = false;
 
 	struct uci_context *ctx = uci_alloc_context();
+	if (!ctx)
+		goto disabled_nofree;
 	ctx->flags &= ~UCI_FLAG_STRICT;
 
 	struct uci_package *p;
@@ -92,8 +94,8 @@ static struct json_object * get_fastd(void) {
 		enabled = true;
 
  disabled:
-
 	uci_free_context(ctx);
+ disabled_nofree:
 
 	struct json_object *ret = json_object_new_object();
 	json_object_object_add(ret, "version", get_fastd_version());
@@ -159,6 +161,8 @@ static struct json_object * get_status(void) {
 	struct json_object *ret = NULL;
 
 	struct uci_context *ctx = uci_alloc_context();
+	if (!ctx)
+		return NULL;
 	ctx->flags &= ~UCI_FLAG_STRICT;
 
 	struct uci_package *p;
diff --git a/package/gluon-node-info/src/respondd.c b/package/gluon-node-info/src/respondd.c
index 3b0e07dced1017d4c4e498367b658be0a83f67f5..7d5e2edfad591f9e57a11a54c6f83442a8b7e908 100644
--- a/package/gluon-node-info/src/respondd.c
+++ b/package/gluon-node-info/src/respondd.c
@@ -117,6 +117,8 @@ static struct json_object * respondd_provider_nodeinfo(void) {
 	struct json_object *ret = json_object_new_object();
 
 	struct uci_context *ctx = uci_alloc_context();
+	if (!ctx)
+		return ret;
 	ctx->flags &= ~UCI_FLAG_STRICT;
 
 	struct uci_package *p;
diff --git a/package/gluon-respondd/src/respondd.c b/package/gluon-respondd/src/respondd.c
index bb54f382e7079f05e88b6129d44cc9845f614c9c..a31693e6053d1879e1d69073301b57b448c2b09f 100644
--- a/package/gluon-respondd/src/respondd.c
+++ b/package/gluon-respondd/src/respondd.c
@@ -70,6 +70,8 @@ static struct json_object * get_hostname(void) {
 	struct json_object *ret = NULL;
 
 	struct uci_context *ctx = uci_alloc_context();
+	if (!ctx)
+		return NULL;
 	ctx->flags &= ~UCI_FLAG_STRICT;
 
 	char section[] = "system.@system[0]";