From 1dff8bd48588b90d7595b61bbb3594ba8ce1cb20 Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Fri, 4 Oct 2019 16:55:48 +0200 Subject: [PATCH] Have meshlink_get_node() and _submesh() set MESHLINK_ENOENT when appropriate. These functions can return NULL both when the parameters are invalid or if the node or submesh does not exist, meshlink_errno must be set correctly to distinguish between the two cases. --- src/meshlink.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/meshlink.c b/src/meshlink.c index 90d64648..bee8eee3 100644 --- a/src/meshlink.c +++ b/src/meshlink.c @@ -1857,6 +1857,11 @@ meshlink_node_t *meshlink_get_node(meshlink_handle_t *mesh, const char *name) { pthread_mutex_lock(&(mesh->mesh_mutex)); node = (meshlink_node_t *)lookup_node(mesh, (char *)name); // TODO: make lookup_node() use const pthread_mutex_unlock(&(mesh->mesh_mutex)); + + if(!node) { + meshlink_errno = MESHLINK_ENOENT; + } + return node; } @@ -1871,6 +1876,11 @@ meshlink_submesh_t *meshlink_get_submesh(meshlink_handle_t *mesh, const char *na pthread_mutex_lock(&(mesh->mesh_mutex)); submesh = (meshlink_submesh_t *)lookup_submesh(mesh, name); pthread_mutex_unlock(&(mesh->mesh_mutex)); + + if(!submesh) { + meshlink_errno = MESHLINK_ENOENT; + } + return submesh; } -- 2.39.2