diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-07-24 11:37:18 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-07-24 11:37:18 -0700 |
commit | 527c20f525c0f178707dea37589f494c9f45e48f (patch) | |
tree | 996e33eacbfa250c8230d5cd611abf61afcec524 /safepath.c | |
parent | e2cf2d257e160ee7feeb3d73fb02e941f7e865d0 (diff) | |
download | safepath-527c20f525c0f178707dea37589f494c9f45e48f.tar.gz safepath-527c20f525c0f178707dea37589f494c9f45e48f.tar.bz2 safepath-527c20f525c0f178707dea37589f494c9f45e48f.zip |
Add SAFEPATH_NOTIDIR error code.
* safepath.h (SAFEPATH_NOTDIR): New enum.
* safepath.c (safepath_err, set_errno): Handle conversion
between SAFEPATH_NOTDIR and ENOTDIR.
(safepath_strerr): Map SAFEPATH_NOTDIR to message.
Diffstat (limited to 'safepath.c')
-rw-r--r-- | safepath.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -132,6 +132,8 @@ static int safepath_err(int eno) return SAFEPATH_OK; case ENOENT: return SAFEPATH_NOENT; + case ENOTDIR: + return SAFEPATH_NOTDIR; case EPERM: case EACCES: return SAFEPATH_PERM; @@ -158,6 +160,9 @@ static void set_errno(int spres) case SAFEPATH_NOENT: errno = ENOENT; break; + case SAFEPATH_NOTDIR: + errno = ENOTDIR; + break; case SAFEPATH_INVAL: errno = EINVAL; break; @@ -344,6 +349,7 @@ const char *safepath_strerr(int err) [SAFEPATH_UNSAFE] = "path contains untrusted component", [SAFEPATH_PERM] = "path contains inaccessible component", [SAFEPATH_NOENT] = "path contains nonexistent component", + [SAFEPATH_NOTDIR] = "path contains non-directory component", [SAFEPATH_INVAL] = "path is syntactically invalid", [SAFEPATH_NOMEM] = "out of memory", [SAFEPATH_LOOP] = "too many symlink resolutions" |