diff options
-rw-r--r-- | security/tomoyo/realpath.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/security/tomoyo/realpath.c b/security/tomoyo/realpath.c index 36fa7c9bedc4..d9f3ced8756e 100644 --- a/security/tomoyo/realpath.c +++ b/security/tomoyo/realpath.c | |||
@@ -293,8 +293,16 @@ char *tomoyo_realpath_from_path(struct path *path) | |||
293 | pos = tomoyo_get_local_path(path->dentry, buf, | 293 | pos = tomoyo_get_local_path(path->dentry, buf, |
294 | buf_len - 1); | 294 | buf_len - 1); |
295 | /* Get absolute name for the rest. */ | 295 | /* Get absolute name for the rest. */ |
296 | else | 296 | else { |
297 | pos = tomoyo_get_absolute_path(path, buf, buf_len - 1); | 297 | pos = tomoyo_get_absolute_path(path, buf, buf_len - 1); |
298 | /* | ||
299 | * Fall back to local name if absolute name is not | ||
300 | * available. | ||
301 | */ | ||
302 | if (pos == ERR_PTR(-EINVAL)) | ||
303 | pos = tomoyo_get_local_path(path->dentry, buf, | ||
304 | buf_len - 1); | ||
305 | } | ||
298 | encode: | 306 | encode: |
299 | if (IS_ERR(pos)) | 307 | if (IS_ERR(pos)) |
300 | continue; | 308 | continue; |