Hello community,

here is the log from the commit of package systemd for openSUSE:Factory checked 
in at 2018-01-13 21:34:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemd (Old)
 and      /work/SRC/openSUSE:Factory/.systemd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "systemd"

Sat Jan 13 21:34:41 2018 rev:267 rq:563317 version:234

Changes:
--------
--- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes     2017-12-13 
11:56:32.921949208 +0100
+++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes        
2018-01-13 21:34:43.158235092 +0100
@@ -1,0 +2,20 @@
+Wed Jan 10 11:04:21 UTC 2018 - [email protected]
+
+- Import commit 82dbe8a2ae56649231111eaadd4c302a2d2175ee
+
+  8c7f0c449 service: Don't stop unneeded units needed by restarted service 
(bsc#1066156)
+  869be64ce sysctl: use raw file descriptor in sysctl_write (#7753)
+  0c2400810 sysctl: disable buffer while writing to /proc (bsc#1071558)
+  9eb1f30b8 Use read_line() and LONG_LINE_MAX to read values configuration 
files. (bsc#1071558)
+  4dbea654f def: add new constant LONG_LINE_MAX
+  48f14cd71 fileio: add new helper call read_line() as bounded getline() 
replacement
+  861e1a222 build-sys: udevadm should have LOG_REALM=LOG_REALM_UDEV
+  8ed5cf3fb meson: libudev_core and udevadm should have 
LOG_REALM=LOG_REALM_UDEV (#7666)
+  a9f93f1d0 virt: use XENFEAT_dom0 to detect the hardware domain (#6442, 
#6662) (#7581) (bsc#1048510)
+  fe56abdf9 seccomp: arm64/x32 do not have _sysctl
+  c9194fe37 seccomp: arm64 does not have mmap2
+  31d9b3c32 fs-util: small tweak in chase_symlinks()
+  9dd0bc7a3 meson: do not include man/meson.build if xsltproc not found
+  7e29e2b07 analyze: replace --no-man with --man=no in the man page 
(bsc#1068251)
+
+-------------------------------------------------------------------
systemd.changes: same change

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ systemd-mini.spec ++++++
--- /var/tmp/diff_new_pack.Pk16Xw/_old  2018-01-13 21:34:44.366178537 +0100
+++ /var/tmp/diff_new_pack.Pk16Xw/_new  2018-01-13 21:34:44.370178351 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package systemd-mini
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed

systemd.spec: same change
++++++ systemd-234.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/Makefile.am new/systemd-234/Makefile.am
--- old/systemd-234/Makefile.am 2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/Makefile.am 2018-01-10 12:03:54.000000000 +0100
@@ -4049,6 +4049,10 @@
        src/udev/udevadm-util.c \
        src/udev/udevadm-util.h
 
+udevadm_CFLAGS = \
+       $(AM_CFLAGS) \
+       -DLOG_REALM=LOG_REALM_UDEV
+
 udevadm_LDADD = \
        libudev-core.la \
        libbasic.la
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/man/meson.build 
new/systemd-234/man/meson.build
--- old/systemd-234/man/meson.build     2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/man/meson.build     2018-01-10 12:03:54.000000000 +0100
@@ -31,7 +31,7 @@
 man_pages = []
 html_pages = []
 source_xml_files = []
-foreach tuple : manpages
+foreach tuple : want_man or want_html ? manpages : []
         stem = tuple[0]
         section = tuple[1]
         aliases = tuple[2]
@@ -114,8 +114,8 @@
         output : 'systemd.index.xml',
         command : [make_man_index_py, '@OUTPUT@'] + nonindex_xml_files)
 
-foreach tuple : [['systemd.directives', '7', systemd_directives_xml],
-                 ['systemd.index',      '7', systemd_index_xml]]
+foreach tuple : want_man or want_html ? [['systemd.directives', '7', 
systemd_directives_xml],
+                                         ['systemd.index',      '7', 
systemd_index_xml]] : []
         stem = tuple[0]
         section = tuple[1]
         xml = tuple[2]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/man/systemd-analyze.xml 
new/systemd-234/man/systemd-analyze.xml
--- old/systemd-234/man/systemd-analyze.xml     2017-11-29 11:11:42.000000000 
+0100
+++ new/systemd-234/man/systemd-analyze.xml     2018-01-10 12:03:54.000000000 
+0100
@@ -281,7 +281,7 @@
       </varlistentry>
 
       <varlistentry>
-        <term><option>--no-man</option></term>
+        <term><option>--man=no</option></term>
 
         <listitem><para>Do not invoke man to verify the existence of
         man pages listed in <varname>Documentation=</varname>.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/meson.build new/systemd-234/meson.build
--- old/systemd-234/meson.build 2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/meson.build 2018-01-10 12:03:54.000000000 +0100
@@ -2096,6 +2096,7 @@
 
 exe = executable('udevadm',
                  udevadm_sources,
+                 c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
                  include_directories : includes,
                  link_with : [libudev_core,
                               libsystemd_network,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/basic/def.h 
new/systemd-234/src/basic/def.h
--- old/systemd-234/src/basic/def.h     2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/src/basic/def.h     2018-01-10 12:03:54.000000000 +0100
@@ -86,3 +86,5 @@
         "/usr/local/lib/" n "\0"                \
         "/usr/lib/" n "\0"                      \
         _CONF_PATHS_SPLIT_USR(n)
+
+#define LONG_LINE_MAX (1U*1024U*1024U)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/basic/fileio.c 
new/systemd-234/src/basic/fileio.c
--- old/systemd-234/src/basic/fileio.c  2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/src/basic/fileio.c  2018-01-10 12:03:54.000000000 +0100
@@ -139,6 +139,9 @@
                 }
         }
 
+        if (flags & WRITE_STRING_FILE_DISABLE_BUFFER)
+                setvbuf(f, NULL, _IONBF, 0);
+
         r = write_string_stream_ts(f, line, !(flags & 
WRITE_STRING_FILE_AVOID_NEWLINE), ts);
         if (r < 0)
                 goto fail;
@@ -1497,3 +1500,80 @@
         *ret = p;
         return 0;
 }
+
+int read_line(FILE *f, size_t limit, char **ret) {
+        _cleanup_free_ char *buffer = NULL;
+        size_t n = 0, allocated = 0, count = 0;
+        int r;
+
+        assert(f);
+
+        /* Something like a bounded version of getline().
+         *
+         * Considers EOF, \n and \0 end of line delimiters, and does not 
include these delimiters in the string
+         * returned.
+         *
+         * Returns the number of bytes read from the files (i.e. including 
delimiters — this hence usually differs from
+         * the number of characters in the returned string). When EOF is hit, 
0 is returned.
+         *
+         * The input parameter limit is the maximum numbers of characters in 
the returned string, i.e. excluding
+         * delimiters. If the limit is hit we fail and return -ENOBUFS.
+         *
+         * If a line shall be skipped ret may be initialized as NULL. */
+
+        if (ret) {
+                if (!GREEDY_REALLOC(buffer, allocated, 1))
+                        return -ENOMEM;
+        }
+
+        flockfile(f);
+
+        for (;;) {
+                int c;
+
+                if (n >= limit) {
+                        funlockfile(f);
+                        return -ENOBUFS;
+                }
+
+                errno = 0;
+                c = fgetc_unlocked(f);
+                if (c == EOF) {
+                        /* if we read an error, and have no data to return, 
then propagate the error */
+                        if (ferror_unlocked(f) && n == 0) {
+                                r = errno > 0 ? -errno : -EIO;
+                                funlockfile(f);
+                                return r;
+                        }
+
+                        break;
+                }
+
+                count++;
+
+                if (IN_SET(c, '\n', 0)) /* Reached a delimiter */
+                        break;
+
+                if (ret) {
+                        if (!GREEDY_REALLOC(buffer, allocated, n + 2)) {
+                                funlockfile(f);
+                                return -ENOMEM;
+                        }
+
+                        buffer[n] = (char) c;
+                }
+
+                n++;
+        }
+
+        funlockfile(f);
+
+        if (ret) {
+                buffer[n] = 0;
+
+                *ret = buffer;
+                buffer = NULL;
+        }
+
+        return (int) count;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/basic/fileio.h 
new/systemd-234/src/basic/fileio.h
--- old/systemd-234/src/basic/fileio.h  2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/src/basic/fileio.h  2018-01-10 12:03:54.000000000 +0100
@@ -33,6 +33,7 @@
         WRITE_STRING_FILE_ATOMIC = 2,
         WRITE_STRING_FILE_AVOID_NEWLINE = 4,
         WRITE_STRING_FILE_VERIFY_ON_FAILURE = 8,
+        WRITE_STRING_FILE_DISABLE_BUFFER = 16,
 } WriteStringFileFlags;
 
 int write_string_stream_ts(FILE *f, const char *line, bool enforce_newline, 
struct timespec *ts);
@@ -99,3 +100,5 @@
 int read_nul_string(FILE *f, char **ret);
 
 int mkdtemp_malloc(const char *template, char **ret);
+
+int read_line(FILE *f, size_t limit, char **ret);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/basic/fs-util.c 
new/systemd-234/src/basic/fs-util.c
--- old/systemd-234/src/basic/fs-util.c 2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/src/basic/fs-util.c 2018-01-10 12:03:54.000000000 +0100
@@ -763,12 +763,11 @@
                                                 return -ENOMEM;
                                 }
 
-                        }
-
-                        /* Prefix what's left to do with what we just read, 
and start the loop again,
-                         * but remain in the current directory. */
-
-                        joined = strjoin("/", destination, todo);
+                                /* Prefix what's left to do with what we just 
read, and start the loop again, but
+                                 * remain in the current directory. */
+                                joined = strjoin(destination, todo);
+                        } else
+                                joined = strjoin("/", destination, todo);
                         if (!joined)
                                 return -ENOMEM;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/basic/virt.c 
new/systemd-234/src/basic/virt.c
--- old/systemd-234/src/basic/virt.c    2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/src/basic/virt.c    2018-01-10 12:03:54.000000000 +0100
@@ -227,11 +227,30 @@
 
 }
 
+#define XENFEAT_dom0 11 /* xen/include/public/features.h */
+#define PATH_FEATURES "/sys/hypervisor/properties/features"
+/* Returns false for domU, or true for dom0 */
 static bool detect_vm_xen_dom0(void) {
         _cleanup_free_ char *domcap = NULL;
         char *cap, *i;
         int r;
 
+        r = read_one_line_file(PATH_FEATURES, &domcap);
+        if (r == 0) {
+                unsigned long features;
+
+                r = safe_atolu(domcap, &features);
+                if (r == 0) {
+                        r = !!(features & (1U << XENFEAT_dom0));
+                        log_debug("Virtualization XEN, found %s with value 
%08lx, "
+                                  "XENFEAT_dom0 (indicating the 'hardware 
domain') is%s set.",
+                                  PATH_FEATURES, features, r ? "" : " not");
+                        return r ? true : false;
+                }
+                log_debug("Virtualization XEN, found %s, unhandled content 
'%s'",
+                          PATH_FEATURES, domcap);
+        }
+
         r = read_one_line_file("/proc/xen/capabilities", &domcap);
         if (r == -ENOENT) {
                 log_debug("Virtualization XEN not found, 
/proc/xen/capabilities does not exist");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/core/service.c 
new/systemd-234/src/core/service.c
--- old/systemd-234/src/core/service.c  2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/src/core/service.c  2018-01-10 12:03:54.000000000 +0100
@@ -1480,6 +1480,22 @@
         }
 }
 
+static bool service_will_restart(Unit *u) {
+        Service *s = SERVICE(u);
+
+        assert(s);
+
+        if (s->will_auto_restart)
+                return true;
+        if (s->state == SERVICE_AUTO_RESTART)
+                return true;
+        if (!UNIT(s)->job)
+                return false;
+        if (UNIT(s)->job->type == JOB_START)
+                return true;
+        return false;
+}
+
 static void service_enter_dead(Service *s, ServiceResult f, bool 
allow_restart) {
         int r;
         assert(s);
@@ -1487,6 +1503,9 @@
         if (s->result == SERVICE_SUCCESS)
                 s->result = f;
 
+        if (allow_restart && service_shall_restart(s))
+                s->will_auto_restart = true;
+
         service_set_state(s, s->result != SERVICE_SUCCESS ? SERVICE_FAILED : 
SERVICE_DEAD);
 
         if (s->result != SERVICE_SUCCESS) {
@@ -1494,7 +1513,8 @@
                 emergency_action(UNIT(s)->manager, s->emergency_action, 
UNIT(s)->reboot_arg, "service failed");
         }
 
-        if (allow_restart && service_shall_restart(s)) {
+        if (s->will_auto_restart) {
+                s->will_auto_restart = false;
 
                 r = service_arm_timer(s, usec_add(now(CLOCK_MONOTONIC), 
s->restart_usec));
                 if (r < 0)
@@ -3643,6 +3663,8 @@
         .active_state = service_active_state,
         .sub_state_to_string = service_sub_state_to_string,
 
+        .will_restart = service_will_restart,
+
         .check_gc = service_check_gc,
 
         .sigchld_event = service_sigchld_event,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/core/service.h 
new/systemd-234/src/core/service.h
--- old/systemd-234/src/core/service.h  2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/src/core/service.h  2018-01-10 12:03:54.000000000 +0100
@@ -163,6 +163,8 @@
         bool main_pid_alien:1;
         bool bus_name_good:1;
         bool forbid_restart:1;
+        /* Keep restart intention between UNIT_FAILED and UNIT_ACTIVATING */
+        bool will_auto_restart:1;
         bool start_timeout_defined:1;
 
         bool reset_cpu_usage:1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/core/unit.c 
new/systemd-234/src/core/unit.c
--- old/systemd-234/src/core/unit.c     2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/src/core/unit.c     2018-01-10 12:03:54.000000000 +0100
@@ -1785,7 +1785,7 @@
 
         for (j = 0; j < ELEMENTSOF(needed_dependencies); j++)
                 SET_FOREACH(other, u->dependencies[needed_dependencies[j]], i)
-                        if (unit_active_or_pending(other))
+                        if (unit_active_or_pending(other) || 
unit_will_restart(other))
                                 return;
 
         /* If stopping a unit fails continuously we might enter a stop
@@ -3306,6 +3306,15 @@
         return false;
 }
 
+bool unit_will_restart(Unit *u) {
+        assert(u);
+
+        if (!UNIT_VTABLE(u)->will_restart)
+                return false;
+
+        return UNIT_VTABLE(u)->will_restart(u);
+}
+
 int unit_kill(Unit *u, KillWho w, int signo, sd_bus_error *error) {
         assert(u);
         assert(w >= 0 && w < _KILL_WHO_MAX);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/core/unit.h 
new/systemd-234/src/core/unit.h
--- old/systemd-234/src/core/unit.h     2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/src/core/unit.h     2018-01-10 12:03:54.000000000 +0100
@@ -368,6 +368,9 @@
          * unit is in. */
         const char* (*sub_state_to_string)(Unit *u);
 
+        /* Additionally to UnitActiveState determine whether unit is to be 
restarted. */
+        bool (*will_restart)(Unit *u);
+
         /* Return true when there is reason to keep this entry around
          * even nothing references it and it isn't active in any
          * way */
@@ -591,6 +594,7 @@
 bool unit_stop_pending(Unit *u) _pure_;
 bool unit_inactive_or_pending(Unit *u) _pure_;
 bool unit_active_or_pending(Unit *u);
+bool unit_will_restart(Unit *u);
 
 int unit_add_default_target_dependency(Unit *u, Unit *target);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/shared/seccomp-util.c 
new/systemd-234/src/shared/seccomp-util.c
--- old/systemd-234/src/shared/seccomp-util.c   2017-11-29 11:11:42.000000000 
+0100
+++ new/systemd-234/src/shared/seccomp-util.c   2018-01-10 12:03:54.000000000 
+0100
@@ -899,6 +899,10 @@
 
                 log_debug("Operating on architecture: %s", 
seccomp_arch_to_string(arch));
 
+                if (IN_SET(arch, SCMP_ARCH_X32, SCMP_ARCH_AARCH64))
+                        /* No _sysctl syscall */
+                        continue;
+
                 r = seccomp_init_for_arch(&seccomp, arch, SCMP_ACT_ALLOW);
                 if (r < 0)
                         return r;
@@ -1219,10 +1223,6 @@
 
                         break;
 
-                case SCMP_ARCH_AARCH64:
-                        block_syscall = SCMP_SYS(mmap);
-                        /* fall through */
-
                 case SCMP_ARCH_ARM:
                         filter_syscall = SCMP_SYS(mmap2); /* arm has only 
mmap2 */
                         shmat_syscall = SCMP_SYS(shmat);
@@ -1230,7 +1230,8 @@
 
                 case SCMP_ARCH_X86_64:
                 case SCMP_ARCH_X32:
-                        filter_syscall = SCMP_SYS(mmap); /* amd64 and x32 have 
only mmap */
+                case SCMP_ARCH_AARCH64:
+                        filter_syscall = SCMP_SYS(mmap); /* amd64, x32, and 
arm64 have only mmap */
                         shmat_syscall = SCMP_SYS(shmat);
                         break;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/shared/sysctl-util.c 
new/systemd-234/src/shared/sysctl-util.c
--- old/systemd-234/src/shared/sysctl-util.c    2017-11-29 11:11:42.000000000 
+0100
+++ new/systemd-234/src/shared/sysctl-util.c    2018-01-10 12:03:54.000000000 
+0100
@@ -17,9 +17,13 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include <errno.h>
+#include <fcntl.h>
 #include <stdio.h>
 #include <string.h>
+#include <unistd.h>
 
+#include "fd-util.h"
 #include "fileio.h"
 #include "log.h"
 #include "macro.h"
@@ -52,6 +56,7 @@
 
 int sysctl_write(const char *property, const char *value) {
         char *p;
+        _cleanup_close_ int fd = -1;
 
         assert(property);
         assert(value);
@@ -59,7 +64,17 @@
         log_debug("Setting '%s' to '%s'", property, value);
 
         p = strjoina("/proc/sys/", property);
-        return write_string_file(p, value, 0);
+        fd = open(p, O_WRONLY|O_CLOEXEC);
+        if (fd < 0)
+                return -errno;
+
+        if (!endswith(value, "\n"))
+                value = strjoina(value, "\n");
+
+        if (write(fd, value, strlen(value)) < 0)
+                return -errno;
+
+        return 0;
 }
 
 int sysctl_read(const char *property, char **content) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/sysctl/sysctl.c 
new/systemd-234/src/sysctl/sysctl.c
--- old/systemd-234/src/sysctl/sysctl.c 2017-11-29 11:11:42.000000000 +0100
+++ new/systemd-234/src/sysctl/sysctl.c 2018-01-10 12:03:54.000000000 +0100
@@ -105,16 +105,16 @@
 
         log_debug("Parsing %s", path);
         for (;;) {
-                char l[LINE_MAX], *p, *value, *new_value, *property, *existing;
+                char *p, *value, *new_value, *property, *existing;
+                _cleanup_free_ char *l = NULL;
                 void *v;
                 int k;
+                k = read_line(f, LONG_LINE_MAX, &l);
+                if (k == 0)
+                        break;
 
-                if (!fgets(l, sizeof(l), f)) {
-                        if (feof(f))
-                                break;
-
-                        return log_error_errno(errno, "Failed to read file 
'%s', ignoring: %m", path);
-                }
+                if (k < 0)
+                        return log_error_errno(k, "Failed to read file '%s', 
ignoring: %m", path);
 
                 c++;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/test/test-fileio.c 
new/systemd-234/src/test/test-fileio.c
--- old/systemd-234/src/test/test-fileio.c      2017-11-29 11:11:42.000000000 
+0100
+++ new/systemd-234/src/test/test-fileio.c      2018-01-10 12:03:54.000000000 
+0100
@@ -663,6 +663,49 @@
         free(ret);
 }
 
+static void test_read_line(void) {
+        _cleanup_fclose_ FILE *f = NULL;
+        _cleanup_free_ char *line = NULL;
+
+        char buffer[] =
+                "Some test data\n"
+                "With newlines, and a NUL byte\0"
+                "\n"
+                "an empty line\n"
+                "an ignored line\n"
+                "and a very long line that is supposed to be truncated, 
because it is so long\n";
+
+        f = fmemopen(buffer, sizeof(buffer), "re");
+        assert_se(f);
+
+        assert_se(read_line(f, (size_t) -1, &line) == 15 && streq(line, "Some 
test data"));
+        line = mfree(line);
+
+        assert_se(read_line(f, 1024, &line) == 30 && streq(line, "With 
newlines, and a NUL byte"));
+        line = mfree(line);
+
+        assert_se(read_line(f, 1024, &line) == 1 && streq(line, ""));
+        line = mfree(line);
+
+        assert_se(read_line(f, 1024, &line) == 14 && streq(line, "an empty 
line"));
+        line = mfree(line);
+
+        assert_se(read_line(f, (size_t) -1, NULL) == 16);
+
+        assert_se(read_line(f, 16, &line) == -ENOBUFS);
+        line = mfree(line);
+
+        /* read_line() stopped when it hit the limit, that means when we 
continue reading we'll read at the first
+         * character after the previous limit. Let's make use of tha to 
continue our test. */
+        assert_se(read_line(f, 1024, &line) == 61 && streq(line, "line that is 
supposed to be truncated, because it is so long"));
+        line = mfree(line);
+
+        assert_se(read_line(f, 1024, &line) == 1 && streq(line, ""));
+        line = mfree(line);
+
+        assert_se(read_line(f, 1024, &line) == 0 && streq(line, ""));
+}
+
 int main(int argc, char *argv[]) {
         log_set_max_level(LOG_DEBUG);
         log_parse_environment();
@@ -684,6 +727,7 @@
         test_search_and_fopen_nulstr();
         test_writing_tmpfile();
         test_tempfn();
+        test_read_line();
 
         return 0;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/test/test-seccomp.c 
new/systemd-234/src/test/test-seccomp.c
--- old/systemd-234/src/test/test-seccomp.c     2017-11-29 11:11:42.000000000 
+0100
+++ new/systemd-234/src/test/test-seccomp.c     2018-01-10 12:03:54.000000000 
+0100
@@ -244,13 +244,17 @@
         assert_se(pid >= 0);
 
         if (pid == 0) {
+#if __NR__sysctl > 0
                 assert_se(syscall(__NR__sysctl, NULL) < 0);
                 assert_se(errno == EFAULT);
+#endif
 
                 assert_se(seccomp_protect_sysctl() >= 0);
 
+#if __NR__sysctl > 0
                 assert_se(syscall(__NR__sysctl, 0, 0, 0) < 0);
                 assert_se(errno == EPERM);
+#endif
 
                 _exit(EXIT_SUCCESS);
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/systemd-234/src/udev/meson.build 
new/systemd-234/src/udev/meson.build
--- old/systemd-234/src/udev/meson.build        2017-11-29 11:11:42.000000000 
+0100
+++ new/systemd-234/src/udev/meson.build        2018-01-10 12:03:54.000000000 
+0100
@@ -113,6 +113,7 @@
         link_config_gperf_c,
         keyboard_keys_from_name_h,
         include_directories : libudev_core_includes,
+        c_args : ['-DLOG_REALM=LOG_REALM_UDEV'],
         link_with : udev_link_with,
         dependencies : [libblkid, libkmod])
 


Reply via email to