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]";