Hello community,

here is the log from the commit of package systemd for openSUSE:Factory checked 
in at 2014-05-06 13:39:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/systemd (Old)
 and      /work/SRC/openSUSE:Factory/.systemd.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "systemd"

Changes:
--------
--- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes     2014-05-02 
20:51:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.systemd.new/systemd-mini.changes        
2014-05-06 13:39:47.000000000 +0200
@@ -1,0 +2,11 @@
+Mon May  5 14:02:16 UTC 2014 - [email protected]
+
+- Port upstream patch
+  0001-sd-rtnl-message-append-fix-uninitialized-memory.patch
+  back to 210
+- Add patch keep-crypt-password-prompt.patch from Thomas Blume
+  to fix bnc#875502 - fails to boot when swap space is encrypted
+- Port upstream patch set for net_id back in patch
+  upstream-net_id-changes.patch
+
+-------------------------------------------------------------------
systemd.changes: same change

New:
----
  0001-sd-rtnl-message-append-fix-uninitialized-memory.patch
  keep-crypt-password-prompt.patch
  upstream-net_id-changes.patch

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

Other differences:
------------------
++++++ systemd-mini.spec ++++++
--- /var/tmp/diff_new_pack.HU7dku/_old  2014-05-06 13:39:50.000000000 +0200
+++ /var/tmp/diff_new_pack.HU7dku/_new  2014-05-06 13:39:50.000000000 +0200
@@ -399,6 +399,10 @@
 Patch203:       respect-nfs-bg-option.patch
 # PATCH-FIX-UPSTREAM Stop useless messages on dual_timestamp_is_set is failed.
 Patch204:       shut-up-annoying-assertion-monotonic-clock-message.patch
+# PATCH-FIX-SUSE Do not override the passphrase prompts due messages of busy 
jobs
+Patch205:       keep-crypt-password-prompt.patch
+# PATCH-FIX-UPSTREAM Fix uninitialized memory
+Patch206:       0001-sd-rtnl-message-append-fix-uninitialized-memory.patch
 
 # UDEV PATCHES
 # ============
@@ -432,6 +436,8 @@
 Patch1012:      1012-Skip-persistent-device-link-creation-on-multipath-de.patch
 # PATCH-FIX-SUSE Do not use runtime PM for some IBM consoles (bnc#868931)
 Patch1013:      1013-no-runtime-PM-for-IBM-consoles.patch
+# PATCH-FIX-UPSTREAM Move forward to git Head for net_id
+Patch1014:      upstream-net_id-changes.patch
 
 %description
 Systemd is a system and service manager, compatible with SysV and LSB
@@ -784,6 +790,8 @@
 %patch202 -p0
 %patch203 -p1
 %patch204 -p1
+%patch205 -p1
+%patch206 -p0
 
 # udev patches
 %patch1001 -p1
@@ -800,6 +808,9 @@
 %patch1011 -p1
 %patch1012 -p1
 %patch1013 -p1
+%if 0%{?suse_version} > 1310
+%patch1014 -p0
+%endif
 
 # ensure generate files are removed
 rm -f units/emergency.service

systemd.spec: same change
++++++ 0001-sd-rtnl-message-append-fix-uninitialized-memory.patch ++++++
Backport of 7ca1d31964a2553f7bd011bc10ac42e0ebc1f975 Mon Sep 17 00:00:00 2001
From: Tom Gundersen <[email protected]>
Date: Fri, 2 May 2014 22:29:18 +0200
Subject: [PATCH] sd-rtnl-message: append - fix uninitialized memory

We were not properly clearing the padding at the front of some containers.
---
 src/libsystemd/sd-rtnl/rtnl-message.c |   42 +++++++++++++++++++++-------------
 1 file changed, 27 insertions(+), 15 deletions(-)

--- src/libsystemd/sd-rtnl/rtnl-message.c
+++ src/libsystemd/sd-rtnl/rtnl-message.c       2014-05-05 13:33:01.998235340 
+0000
@@ -314,24 +314,28 @@ int sd_rtnl_message_link_get_flags(sd_rt
 /* If successful the updated message will be correctly aligned, if
    unsuccessful the old message is untouched. */
 static int add_rtattr(sd_rtnl_message *m, unsigned short type, const void 
*data, size_t data_length) {
-        uint32_t rta_length, message_length;
+        uint32_t rta_length;
+        size_t message_length, padding_length;
         struct nlmsghdr *new_hdr;
         struct rtattr *rta;
         char *padding;
         unsigned i;
+        int offset;
 
         assert(m);
         assert(m->hdr);
         assert(!m->sealed);
         assert(NLMSG_ALIGN(m->hdr->nlmsg_len) == m->hdr->nlmsg_len);
-        assert(!data || data_length > 0);
-        assert(data || m->n_containers < RTNL_CONTAINER_DEPTH);
+        assert(!data || data_length);
+
+        /* get offset of the new attribute */
+        offset = m->hdr->nlmsg_len;
 
         /* get the size of the new rta attribute (with padding at the end) */
         rta_length = RTA_LENGTH(data_length);
 
         /* get the new message size (with padding at the end) */
-        message_length = m->hdr->nlmsg_len + RTA_ALIGN(rta_length);
+        message_length = offset + RTA_ALIGN(rta_length);
 
         /* realloc to fit the new attribute */
         new_hdr = realloc(m->hdr, message_length);
@@ -340,32 +344,35 @@ static int add_rtattr(sd_rtnl_message *m
         m->hdr = new_hdr;
 
         /* get pointer to the attribute we are about to add */
-        rta = (struct rtattr *) ((uint8_t *) m->hdr + m->hdr->nlmsg_len);
+        rta = (struct rtattr *) ((uint8_t *) m->hdr + offset);
 
         /* if we are inside containers, extend them */
         for (i = 0; i < m->n_containers; i++)
-                GET_CONTAINER(m, i)->rta_len += message_length - 
m->hdr->nlmsg_len;
+                GET_CONTAINER(m, i)->rta_len += message_length - offset;
 
         /* fill in the attribute */
         rta->rta_type = type;
         rta->rta_len = rta_length;
-        if (!data) {
-                /* this is the start of a new container */
-                m->container_offsets[m->n_containers ++] = m->hdr->nlmsg_len;
-        } else {
+        if (data)
                 /* we don't deal with the case where the user lies about the 
type
                  * and gives us too little data (so don't do that)
-                */
+                 */
                 padding = mempcpy(RTA_DATA(rta), data, data_length);
-                /* make sure also the padding at the end of the message is 
initialized */
-                memzero(padding,
-                        (uint8_t *) m->hdr + message_length - (uint8_t *) 
padding);
+        else {
+                /* if no data was passed, make sure we still initialize the 
padding
+                   note that we can have data_length > 0 (used by some 
containers) */
+                padding = RTA_DATA(rta);
+                data_length = 0;
         }
 
+        /* make sure also the padding at the end of the message is initialized 
*/
+        padding_length = (uint8_t*)m->hdr + message_length - (uint8_t*)padding;
+        memzero(padding, padding_length);
+
         /* update message size */
         m->hdr->nlmsg_len = message_length;
 
-        return 0;
+        return offset;
 }
 
 int sd_rtnl_message_append_string(sd_rtnl_message *m, unsigned short type, 
const char *data) {
@@ -498,6 +505,7 @@ int sd_rtnl_message_append_u32(sd_rtnl_m
 
         assert_return(m, -EINVAL);
         assert_return(!m->sealed, -EPERM);
+        assert_return(m->n_containers < RTNL_CONTAINER_DEPTH, -ERANGE);
 
         r = sd_rtnl_message_get_type(m, &rtm_type);
         if (r < 0)
@@ -548,6 +556,10 @@ int sd_rtnl_message_append_u32(sd_rtnl_m
         if (r < 0)
                 return r;
 
+        m->container_offsets[m->n_containers ++] = r;
+
+        m->container_offsets[m->n_containers ++] = r;
+
         return 0;
 }
 
++++++ keep-crypt-password-prompt.patch ++++++
--- systemd-210/src/core/manager.c      2014-05-05 11:46:17.700483956 +0200
+++ systemd-210/src/core/manager.c      2014-05-05 13:29:13.296503646 +0200
@@ -152,6 +152,29 @@
         }
 }
 
+static int check_for_password_prompt(void) {
+        DIR *d;
+        struct dirent *de;
+
+        if (!(d = opendir("/run/systemd/ask-password"))) {
+                log_error("opendir(): %m");
+
+                if (errno == ENOENT)
+                        return 1;
+
+                return -errno;
+        }
+
+        while ((de = readdir(d))) {
+                if (startswith(de->d_name, "ask.")) {
+                        closedir(d);
+                        return 0;
+                }
+        }
+        closedir(d);
+        return 1;
+}
+
 static void manager_print_jobs_in_progress(Manager *m) {
         static int is_ansi_console = -1;
         _cleanup_free_ char *job_of_n = NULL;
@@ -195,6 +217,10 @@
 
         m->jobs_in_progress_iteration++;
 
+        //don't overwrite the crypt password prompt with job status messages
+        if (check_for_password_prompt() == 0);
+                return 0;
+
         if (m->n_running_jobs > 1)
                 if (asprintf(&job_of_n, "(%u of %u) ", counter, 
m->n_running_jobs) < 0)
                         job_of_n = NULL;
++++++ upstream-net_id-changes.patch ++++++
This the diff between systemd-210 and 19aa72f74e41045510b4af3f1415b419d42ff20b
But we do not remove the ATA support as in HEAD

---
 src/udev/udev-builtin-net_id.c  |   54 ++++++----------------------------------
 src/udev/udev-builtin-path_id.c |    3 --
 2 files changed, 9 insertions(+), 48 deletions(-)

--- src/udev/udev-builtin-net_id.c
+++ src/udev/udev-builtin-net_id.c      2014-04-08 07:16:45.094235605 +0000
@@ -33,6 +33,8 @@
  *   ww -- wwan
  *
  * Type of names:
+ *   b<number>                             -- BCMA bus core number
+ *   ccw<name>                             -- CCW bus group name
  *   o<index>                              -- on-board device index number
  *   s<slot>[f<function>][d<dev_id>]       -- hotplug slot index number
  *   x<MAC>                                -- MAC address
@@ -92,6 +94,7 @@
 #include <string.h>
 #include <errno.h>
 #include <net/if.h>
+#include <net/if_arp.h>
 #include <linux/pci_regs.h>
 
 #include "udev.h"
@@ -119,12 +122,8 @@ struct netnames {
         const char *pci_onboard_label;
 
         char usb_ports[IFNAMSIZ];
-
         char bcma_core[IFNAMSIZ];
-
-        char virtio_core[IFNAMSIZ];
-
-        char ccw_core[IFNAMSIZ];
+        char ccw_group[IFNAMSIZ];
 };
 
 /* retrieve on-board index number and label from firmware */
@@ -351,25 +350,6 @@ static int names_bcma(struct udev_device
         return 0;
 }
 
-static int names_virtio(struct udev_device *dev, struct netnames *names) {
-        struct udev_device *virtdev;
-        unsigned int core;
-
-        virtdev = udev_device_get_parent_with_subsystem_devtype(dev, "virtio", 
NULL);
-        if (!virtdev)
-                return -ENOENT;
-
-        /* core num */
-        if (sscanf(udev_device_get_sysname(virtdev), "virtio%u", &core) != 1)
-                return -EINVAL;
-        /* suppress the common core == 0 */
-        if (core > 0)
-                snprintf(names->virtio_core, sizeof(names->virtio_core), 
"v%u", core);
-
-        names->type = NET_VIRTIO;
-        return 0;
-}
-
 static int names_ccw(struct  udev_device *dev, struct netnames *names) {
         struct udev_device *cdev;
         const char *bus_id;
@@ -402,8 +382,8 @@ static int names_ccw(struct  udev_device
                 return -EINVAL;
 
         /* Store the CCW bus-ID for use as network device name */
-        rc = snprintf(names->ccw_core, sizeof(names->ccw_core), "ccw%s", 
bus_id);
-        if (rc >= 0 && rc < (int)sizeof(names->ccw_core))
+        rc = snprintf(names->ccw_group, sizeof(names->ccw_group), "ccw%s", 
bus_id);
+        if (rc >= 0 && rc < (int)sizeof(names->ccw_group))
                 names->type = NET_CCWGROUP;
         return 0;
 }
@@ -472,10 +452,10 @@ static int builtin_net_id(struct udev_de
                 return EXIT_FAILURE;
         i = strtoul(s, NULL, 0);
         switch (i) {
-        case 1: /* ARPHRD_ETHER */
+        case ARPHRD_ETHER:
                 prefix = "en";
                 break;
-        case 256: /* ARPHRD_SLIP */
+        case ARPHRD_SLIP:
                 prefix = "sl";
                 break;
         default:
@@ -517,7 +497,7 @@ static int builtin_net_id(struct udev_de
         if (err >= 0 && names.type == NET_CCWGROUP) {
                 char str[IFNAMSIZ];
 
-                if (snprintf(str, sizeof(str), "%s%s", prefix, names.ccw_core) 
< (int)sizeof(str))
+                if (snprintf(str, sizeof(str), "%s%s", prefix, 
names.ccw_group) < (int)sizeof(str))
                         udev_builtin_add_property(dev, test, 
"ID_NET_NAME_PATH", str);
                 goto out;
         }
@@ -578,22 +558,6 @@ static int builtin_net_id(struct udev_de
                                 udev_builtin_add_property(dev, test, 
"ID_NET_NAME_SLOT", str);
                 goto out;
         }
-
-        /* virtio bus */
-        err = names_virtio(dev, &names);
-        if (err >= 0 && names.type == NET_VIRTIO) {
-                char str[IFNAMSIZ];
-
-                if (names.pci_path[0])
-                        if (snprintf(str, sizeof(str), "%s%s%s", prefix, 
names.pci_path, names.virtio_core) < (int)sizeof(str))
-                                udev_builtin_add_property(dev, test, 
"ID_NET_NAME_PATH", str);
-
-                if (names.pci_slot[0])
-                        if (snprintf(str, sizeof(str), "%s%s%s", prefix, 
names.pci_slot, names.virtio_core) < (int)sizeof(str))
-                                udev_builtin_add_property(dev, test, 
"ID_NET_NAME_SLOT", str);
-                goto out;
-        }
-
 out:
         return EXIT_SUCCESS;
 }
--- src/udev/udev-builtin-path_id.c
+++ src/udev/udev-builtin-path_id.c     2014-03-28 09:27:20.402735390 +0000
@@ -571,9 +571,6 @@ static int builtin_path_id(struct udev_d
                 } else if (streq(subsys, "xen")) {
                         path_prepend(&path, "xen-%s", 
udev_device_get_sysname(parent));
                         parent = skip_subsystem(parent, "xen");
-                } else if (streq(subsys, "virtio")) {
-                        path_prepend(&path, "virtio-pci-%s", 
udev_device_get_sysname(parent));
-                        parent = skip_subsystem(parent, "virtio");
                 } else if (streq(subsys, "scm")) {
                         path_prepend(&path, "scm-%s", 
udev_device_get_sysname(parent));
                         parent = skip_subsystem(parent, "scm");
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to