diff options
-rw-r--r-- | librt/shm.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/librt/shm.c b/librt/shm.c index 40e69fa2e..79c98a35b 100644 --- a/librt/shm.c +++ b/librt/shm.c @@ -84,6 +84,9 @@ int shm_open(const char *name, int oflag, mode_t mode) */ } #endif + if (fd < 0 && errno == EISDIR) + /* EISDIR is not valid for shm_open, replace it with EINVAL as glibc. */ + __set_errno (EINVAL); free(shm_name); /* doesn't affect errno */ return fd; } |