chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util-lib: move formats-util.h from shared/ to basic/
[elogind.git]
/
src
/
shared
/
clean-ipc.c
diff --git
a/src/shared/clean-ipc.c
b/src/shared/clean-ipc.c
index cb1722614e7cd5dc21f938bafa2b2d6629b4f9b1..85d35a567be74ae3431d789837bfcdcc9d009671 100644
(file)
--- a/
src/shared/clean-ipc.c
+++ b/
src/shared/clean-ipc.c
@@
-24,12
+24,12
@@
#include <sys/sem.h>
#include <sys/msg.h>
#include <sys/stat.h>
#include <sys/sem.h>
#include <sys/msg.h>
#include <sys/stat.h>
-#include <sys/mman.h>
#include <fcntl.h>
#include <dirent.h>
#include <fcntl.h>
#include <dirent.h>
-#include <mqueue.h>
+
//
#include <mqueue.h>
#include "util.h"
#include "util.h"
+#include "formats-util.h"
#include "strv.h"
#include "clean-ipc.h"
#include "strv.h"
#include "clean-ipc.h"
@@
-44,7
+44,7
@@
static int clean_sysvipc_shm(uid_t delete_uid) {
if (errno == ENOENT)
return 0;
if (errno == ENOENT)
return 0;
- log_warning
(
"Failed to open /proc/sysvipc/shm: %m");
+ log_warning
_errno(errno,
"Failed to open /proc/sysvipc/shm: %m");
return -errno;
}
return -errno;
}
@@
-78,15
+78,16
@@
static int clean_sysvipc_shm(uid_t delete_uid) {
if (errno == EIDRM || errno == EINVAL)
continue;
if (errno == EIDRM || errno == EINVAL)
continue;
- log_warning("Failed to remove SysV shared memory segment %i: %m", shmid);
- ret = -errno;
+ ret = log_warning_errno(errno,
+ "Failed to remove SysV shared memory segment %i: %m",
+ shmid);
}
}
return ret;
fail:
}
}
return ret;
fail:
- log_warning
(
"Failed to read /proc/sysvipc/shm: %m");
+ log_warning
_errno(errno,
"Failed to read /proc/sysvipc/shm: %m");
return -errno;
}
return -errno;
}
@@
-101,7
+102,7
@@
static int clean_sysvipc_sem(uid_t delete_uid) {
if (errno == ENOENT)
return 0;
if (errno == ENOENT)
return 0;
- log_warning
(
"Failed to open /proc/sysvipc/sem: %m");
+ log_warning
_errno(errno,
"Failed to open /proc/sysvipc/sem: %m");
return -errno;
}
return -errno;
}
@@
-130,15
+131,16
@@
static int clean_sysvipc_sem(uid_t delete_uid) {
if (errno == EIDRM || errno == EINVAL)
continue;
if (errno == EIDRM || errno == EINVAL)
continue;
- log_warning("Failed to remove SysV semaphores object %i: %m", semid);
- ret = -errno;
+ ret = log_warning_errno(errno,
+ "Failed to remove SysV semaphores object %i: %m",
+ semid);
}
}
return ret;
fail:
}
}
return ret;
fail:
- log_warning
(
"Failed to read /proc/sysvipc/sem: %m");
+ log_warning
_errno(errno,
"Failed to read /proc/sysvipc/sem: %m");
return -errno;
}
return -errno;
}
@@
-153,7
+155,7
@@
static int clean_sysvipc_msg(uid_t delete_uid) {
if (errno == ENOENT)
return 0;
if (errno == ENOENT)
return 0;
- log_warning
(
"Failed to open /proc/sysvipc/msg: %m");
+ log_warning
_errno(errno,
"Failed to open /proc/sysvipc/msg: %m");
return -errno;
}
return -errno;
}
@@
-183,15
+185,16
@@
static int clean_sysvipc_msg(uid_t delete_uid) {
if (errno == EIDRM || errno == EINVAL)
continue;
if (errno == EIDRM || errno == EINVAL)
continue;
- log_warning("Failed to remove SysV message queue %i: %m", msgid);
- ret = -errno;
+ ret = log_warning_errno(errno,
+ "Failed to remove SysV message queue %i: %m",
+ msgid);
}
}
return ret;
fail:
}
}
return ret;
fail:
- log_warning
(
"Failed to read /proc/sysvipc/msg: %m");
+ log_warning
_errno(errno,
"Failed to read /proc/sysvipc/msg: %m");
return -errno;
}
return -errno;
}
@@
-211,7
+214,7
@@
static int clean_posix_shm_internal(DIR *dir, uid_t uid) {
if (errno == ENOENT)
continue;
if (errno == ENOENT)
continue;
- log_warning
(
"Failed to stat() POSIX shared memory segment %s: %m", de->d_name);
+ log_warning
_errno(errno,
"Failed to stat() POSIX shared memory segment %s: %m", de->d_name);
ret = -errno;
continue;
}
ret = -errno;
continue;
}
@@
-225,7
+228,7
@@
static int clean_posix_shm_internal(DIR *dir, uid_t uid) {
kid = xopendirat(dirfd(dir), de->d_name, O_NOFOLLOW|O_NOATIME);
if (!kid) {
if (errno != ENOENT) {
kid = xopendirat(dirfd(dir), de->d_name, O_NOFOLLOW|O_NOATIME);
if (!kid) {
if (errno != ENOENT) {
- log_warning
(
"Failed to enter shared memory directory %s: %m", de->d_name);
+ log_warning
_errno(errno,
"Failed to enter shared memory directory %s: %m", de->d_name);
ret = -errno;
}
} else {
ret = -errno;
}
} else {
@@
-239,7
+242,7
@@
static int clean_posix_shm_internal(DIR *dir, uid_t uid) {
if (errno == ENOENT)
continue;
if (errno == ENOENT)
continue;
- log_warning
(
"Failed to remove POSIX shared memory directory %s: %m", de->d_name);
+ log_warning
_errno(errno,
"Failed to remove POSIX shared memory directory %s: %m", de->d_name);
ret = -errno;
}
} else {
ret = -errno;
}
} else {
@@
-249,7
+252,7
@@
static int clean_posix_shm_internal(DIR *dir, uid_t uid) {
if (errno == ENOENT)
continue;
if (errno == ENOENT)
continue;
- log_warning
(
"Failed to remove POSIX shared memory segment %s: %m", de->d_name);
+ log_warning
_errno(errno,
"Failed to remove POSIX shared memory segment %s: %m", de->d_name);
ret = -errno;
}
}
ret = -errno;
}
}
@@
-258,7
+261,7
@@
static int clean_posix_shm_internal(DIR *dir, uid_t uid) {
return ret;
fail:
return ret;
fail:
- log_warning
(
"Failed to read /dev/shm: %m");
+ log_warning
_errno(errno,
"Failed to read /dev/shm: %m");
return -errno;
}
return -errno;
}
@@
-270,13
+273,15
@@
static int clean_posix_shm(uid_t uid) {
if (errno == ENOENT)
return 0;
if (errno == ENOENT)
return 0;
- log_warning
(
"Failed to open /dev/shm: %m");
+ log_warning
_errno(errno,
"Failed to open /dev/shm: %m");
return -errno;
}
return clean_posix_shm_internal(dir, uid);
}
return -errno;
}
return clean_posix_shm_internal(dir, uid);
}
+/// UNNEEDED by elogind
+#if 0
static int clean_posix_mq(uid_t uid) {
_cleanup_closedir_ DIR *dir = NULL;
struct dirent *de;
static int clean_posix_mq(uid_t uid) {
_cleanup_closedir_ DIR *dir = NULL;
struct dirent *de;
@@
-287,7
+292,7
@@
static int clean_posix_mq(uid_t uid) {
if (errno == ENOENT)
return 0;
if (errno == ENOENT)
return 0;
- log_warning
(
"Failed to open /dev/mqueue: %m");
+ log_warning
_errno(errno,
"Failed to open /dev/mqueue: %m");
return -errno;
}
return -errno;
}
@@
-302,8
+307,9
@@
static int clean_posix_mq(uid_t uid) {
if (errno == ENOENT)
continue;
if (errno == ENOENT)
continue;
- log_warning("Failed to stat() MQ segment %s: %m", de->d_name);
- ret = -errno;
+ ret = log_warning_errno(errno,
+ "Failed to stat() MQ segment %s: %m",
+ de->d_name);
continue;
}
continue;
}
@@
-317,17
+323,19
@@
static int clean_posix_mq(uid_t uid) {
if (errno == ENOENT)
continue;
if (errno == ENOENT)
continue;
- log_warning("Failed to unlink POSIX message queue %s: %m", fn);
- ret = -errno;
+ ret = log_warning_errno(errno,
+ "Failed to unlink POSIX message queue %s: %m",
+ fn);
}
}
return ret;
fail:
}
}
return ret;
fail:
- log_warning
(
"Failed to read /dev/mqueue: %m");
+ log_warning
_errno(errno,
"Failed to read /dev/mqueue: %m");
return -errno;
}
return -errno;
}
+#endif // 0
int clean_ipc(uid_t uid) {
int ret = 0, r;
int clean_ipc(uid_t uid) {
int ret = 0, r;
@@
-352,9
+360,12
@@
int clean_ipc(uid_t uid) {
if (r < 0)
ret = r;
if (r < 0)
ret = r;
+/// elogind does not use mq_open anywhere
+#if 0
r = clean_posix_mq(uid);
if (r < 0)
ret = r;
r = clean_posix_mq(uid);
if (r < 0)
ret = r;
+#endif // 0
return ret;
}
return ret;
}