oomd: do not ignore failure in sd_lisen_fds()

Also, use -EBADF for an invalid file descriptor.
This commit is contained in:
Yu Watanabe
2025-03-19 01:33:54 +09:00
parent d50b9cbe56
commit 024bb0c63e

View File

@@ -115,10 +115,12 @@ static int run(int argc, char *argv[]) {
* requirements do not have a reliable means to check for in code. */
int n = sd_listen_fds(0);
if (n < 0)
return log_error_errno(n, "Failed to determine number of listening fds: %m");
if (n > 1)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Received too many file descriptors");
int fd = n == 1 ? SD_LISTEN_FDS_START : -1;
int fd = n == 1 ? SD_LISTEN_FDS_START : -EBADF;
/* SwapTotal is always available in /proc/meminfo and defaults to 0, even on swap-disabled kernels. */
r = get_proc_field("/proc/meminfo", "SwapTotal", WHITESPACE, &swap);