From 99142521d202c1b626dd308e25c42eb95f613c21 Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Mon, 22 Aug 2016 12:00:25 +0200 Subject: [PATCH 14/24] bindings: set errno in pick_controller_from_path() This will allow us to provide better standard fs behavior. Signed-off-by: Christian Brauner --- bindings.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/bindings.c b/bindings.c index cf56208..f3cd85d 100644 --- a/bindings.c +++ b/bindings.c @@ -1506,14 +1506,20 @@ static char *pick_controller_from_path(struct fuse_context *fc, const char *path const char *p1; char *contr, *slash; - if (strlen(path) < 9) + if (strlen(path) < 9) { + errno = EINVAL; return NULL; - if (*(path + 7) != '/') + } + if (*(path + 7) != '/') { + errno = EINVAL; return NULL; + } p1 = path + 8; contr = strdupa(p1); - if (!contr) + if (!contr) { + errno = ENOMEM; return NULL; + } slash = strstr(contr, "/"); if (slash) *slash = '\0'; @@ -1523,6 +1529,7 @@ static char *pick_controller_from_path(struct fuse_context *fc, const char *path if (hierarchies[i] && strcmp(hierarchies[i], contr) == 0) return hierarchies[i]; } + errno = ENOENT; return NULL; } -- 2.9.3