mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 10:25:37 +03:00
commit
9ecbcdffdf
@ -197,6 +197,7 @@ static bool barrier_write(Barrier *b, uint64_t buf) {
|
|||||||
if (barrier_i_aborted(b))
|
if (barrier_i_aborted(b))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
assert(b->me >= 0);
|
||||||
do {
|
do {
|
||||||
len = write(b->me, &buf, sizeof(buf));
|
len = write(b->me, &buf, sizeof(buf));
|
||||||
} while (len < 0 && IN_SET(errno, EAGAIN, EINTR));
|
} while (len < 0 && IN_SET(errno, EAGAIN, EINTR));
|
||||||
|
@ -991,14 +991,8 @@ fail:
|
|||||||
}
|
}
|
||||||
|
|
||||||
strv_free(e);
|
strv_free(e);
|
||||||
|
|
||||||
closelog();
|
closelog();
|
||||||
|
|
||||||
if (pam_pid > 1) {
|
|
||||||
kill(pam_pid, SIGTERM);
|
|
||||||
kill(pam_pid, SIGCONT);
|
|
||||||
}
|
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -467,7 +467,7 @@ static int lease_parse_classless_routes(
|
|||||||
if (len < 4)
|
if (len < 4)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
lease_parse_be32(option, 4, &route->gw_addr.s_addr);
|
assert_se(lease_parse_be32(option, 4, &route->gw_addr.s_addr) >= 0);
|
||||||
option += 4;
|
option += 4;
|
||||||
len -= 4;
|
len -= 4;
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ int dhcp6_lease_set_ntp(sd_dhcp6_lease *lease, uint8_t *optval, size_t optlen) {
|
|||||||
assert_return(lease, -EINVAL);
|
assert_return(lease, -EINVAL);
|
||||||
assert_return(optval, -EINVAL);
|
assert_return(optval, -EINVAL);
|
||||||
|
|
||||||
free(lease->ntp);
|
lease->ntp = mfree(lease->ntp);
|
||||||
lease->ntp_count = 0;
|
lease->ntp_count = 0;
|
||||||
lease->ntp_allocated = 0;
|
lease->ntp_allocated = 0;
|
||||||
|
|
||||||
|
@ -659,15 +659,16 @@ static int manager_rtnl_process_link(sd_netlink *rtnl, sd_netlink_message *messa
|
|||||||
} else if (ifindex <= 0) {
|
} else if (ifindex <= 0) {
|
||||||
log_warning("rtnl: received link message with invalid ifindex: %d", ifindex);
|
log_warning("rtnl: received link message with invalid ifindex: %d", ifindex);
|
||||||
return 0;
|
return 0;
|
||||||
} else
|
}
|
||||||
link_get(m, ifindex, &link);
|
|
||||||
|
|
||||||
r = sd_netlink_message_read_string(message, IFLA_IFNAME, &name);
|
r = sd_netlink_message_read_string(message, IFLA_IFNAME, &name);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
log_warning_errno(r, "rtnl: Received link message without ifname: %m");
|
log_warning_errno(r, "rtnl: Received link message without ifname: %m");
|
||||||
return 0;
|
return 0;
|
||||||
} else
|
}
|
||||||
netdev_get(m, name, &netdev);
|
|
||||||
|
(void) link_get(m, ifindex, &link);
|
||||||
|
(void) netdev_get(m, name, &netdev);
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case RTM_NEWLINK:
|
case RTM_NEWLINK:
|
||||||
|
@ -40,6 +40,7 @@ static int test_cgroup_mask(void) {
|
|||||||
puts("manager_new: Permission denied. Skipping test.");
|
puts("manager_new: Permission denied. Skipping test.");
|
||||||
return EXIT_TEST_SKIP;
|
return EXIT_TEST_SKIP;
|
||||||
}
|
}
|
||||||
|
assert_se(r >= 0);
|
||||||
|
|
||||||
/* Turn off all kinds of default accouning, so that we can
|
/* Turn off all kinds of default accouning, so that we can
|
||||||
* verify the masks resulting of our configuration and nothing
|
* verify the masks resulting of our configuration and nothing
|
||||||
|
@ -27,14 +27,16 @@
|
|||||||
|
|
||||||
static void test_should_pass(const char *p) {
|
static void test_should_pass(const char *p) {
|
||||||
usec_t t, q;
|
usec_t t, q;
|
||||||
char buf[FORMAT_TIMESTAMP_MAX], buf_relative[FORMAT_TIMESTAMP_RELATIVE_MAX];
|
char buf[FORMAT_TIMESTAMP_MAX], buf_relative[FORMAT_TIMESTAMP_RELATIVE_MAX], *sp;
|
||||||
|
|
||||||
assert_se(parse_timestamp(p, &t) >= 0);
|
assert_se(parse_timestamp(p, &t) >= 0);
|
||||||
format_timestamp_us(buf, sizeof(buf), t);
|
format_timestamp_us(buf, sizeof(buf), t);
|
||||||
log_info("%s", buf);
|
log_info("%s", buf);
|
||||||
|
|
||||||
/* Chop off timezone */
|
/* Chop off timezone */
|
||||||
*strrchr(buf, ' ') = 0;
|
sp = strrchr(buf, ' ');
|
||||||
|
assert_se(sp);
|
||||||
|
*sp = 0;
|
||||||
|
|
||||||
assert_se(parse_timestamp(buf, &q) >= 0);
|
assert_se(parse_timestamp(buf, &q) >= 0);
|
||||||
assert_se(q == t);
|
assert_se(q == t);
|
||||||
|
@ -28,6 +28,8 @@
|
|||||||
#include "fd-util.h"
|
#include "fd-util.h"
|
||||||
#include "fileio.h"
|
#include "fileio.h"
|
||||||
#include "formats-util.h"
|
#include "formats-util.h"
|
||||||
|
#include "fs-util.h"
|
||||||
|
#include "log.h"
|
||||||
#include "string-util.h"
|
#include "string-util.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
@ -35,20 +37,29 @@ int main(int argc, char** argv) {
|
|||||||
const char *p = argv[1] ?: "/tmp";
|
const char *p = argv[1] ?: "/tmp";
|
||||||
char *pattern = strjoina(p, "/systemd-test-XXXXXX");
|
char *pattern = strjoina(p, "/systemd-test-XXXXXX");
|
||||||
_cleanup_close_ int fd, fd2;
|
_cleanup_close_ int fd, fd2;
|
||||||
_cleanup_free_ char *cmd, *cmd2;
|
_cleanup_free_ char *cmd, *cmd2, *ans, *ans2;
|
||||||
|
|
||||||
|
log_set_max_level(LOG_DEBUG);
|
||||||
|
log_parse_environment();
|
||||||
|
|
||||||
fd = open_tmpfile(p, O_RDWR|O_CLOEXEC);
|
fd = open_tmpfile(p, O_RDWR|O_CLOEXEC);
|
||||||
assert_se(fd >= 0);
|
assert_se(fd >= 0);
|
||||||
|
|
||||||
assert_se(asprintf(&cmd, "ls -l /proc/"PID_FMT"/fd/%d", getpid(), fd) > 0);
|
assert_se(asprintf(&cmd, "ls -l /proc/"PID_FMT"/fd/%d", getpid(), fd) > 0);
|
||||||
system(cmd);
|
(void) system(cmd);
|
||||||
|
assert_se(readlink_malloc(cmd + 6, &ans) >= 0);
|
||||||
|
log_debug("link1: %s", ans);
|
||||||
|
assert_se(endswith(ans, " (deleted)"));
|
||||||
|
|
||||||
fd2 = mkostemp_safe(pattern, O_RDWR|O_CLOEXEC);
|
fd2 = mkostemp_safe(pattern, O_RDWR|O_CLOEXEC);
|
||||||
assert_se(fd >= 0);
|
assert_se(fd >= 0);
|
||||||
assert_se(unlink(pattern) == 0);
|
assert_se(unlink(pattern) == 0);
|
||||||
|
|
||||||
assert_se(asprintf(&cmd2, "ls -l /proc/"PID_FMT"/fd/%d", getpid(), fd2) > 0);
|
assert_se(asprintf(&cmd2, "ls -l /proc/"PID_FMT"/fd/%d", getpid(), fd2) > 0);
|
||||||
system(cmd2);
|
(void) system(cmd2);
|
||||||
|
assert_se(readlink_malloc(cmd2 + 6, &ans2) >= 0);
|
||||||
|
log_debug("link2: %s", ans2);
|
||||||
|
assert_se(endswith(ans2, " (deleted)"));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -372,7 +372,8 @@ static int manager_adjust_clock(Manager *m, double offset, int leap_sec) {
|
|||||||
if (r < 0)
|
if (r < 0)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
touch("/var/lib/systemd/clock");
|
/* If touch fails, there isn't much we can do. Maybe it'll work next time. */
|
||||||
|
(void) touch("/var/lib/systemd/clock");
|
||||||
|
|
||||||
m->drift_ppm = tmx.freq / 65536;
|
m->drift_ppm = tmx.freq / 65536;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user