52 lines
1.2 KiB
Diff
52 lines
1.2 KiB
Diff
|
From 99142521d202c1b626dd308e25c42eb95f613c21 Mon Sep 17 00:00:00 2001
|
||
|
From: Christian Brauner <cbrauner@suse.de>
|
||
|
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 <cbrauner@suse.de>
|
||
|
---
|
||
|
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
|
||
|
|