You can find few patches for various bugs in attachement.

--
Regards

Václav Pavlín and Lukáš Nykrýn
>From 55fa1c1b09933e55ce105279f2591674381c5345 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 12:04:02 +0200
Subject: [PATCH 01/18] cgtop: missing '-'

Return codes in systemd are negated and
if (r < 0)  if (r == ENOENT)
        was never true.
---
 src/cgtop/cgtop.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/cgtop/cgtop.c b/src/cgtop/cgtop.c
index 3756328..9eb2d2f 100644
--- a/src/cgtop/cgtop.c
+++ b/src/cgtop/cgtop.c
@@ -300,7 +300,7 @@ static int refresh_one(
 
         r = cg_enumerate_subgroups(controller, path, &d);
         if (r < 0) {
-                if (r == ENOENT)
+                if (r == -ENOENT)
                         return 0;
 
                 return r;
-- 
1.7.11.4

>From c8f330a8910d6d04c9c073961d3ab280a17cfd32 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 12:17:23 +0200
Subject: [PATCH 02/18] udev: check malloc return in collect/collect.c

Returns from no memory checks updated with log_oom call
---
 src/udev/collect/collect.c | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/src/udev/collect/collect.c b/src/udev/collect/collect.c
index 4162c43..47c2ddd 100644
--- a/src/udev/collect/collect.c
+++ b/src/udev/collect/collect.c
@@ -142,7 +142,7 @@ static int checkout(int fd)
         buf = calloc(1,bufsize + 1);
         if (!buf) {
                 fprintf(stderr, "Out of memory.\n");
-                return -1;
+                return log_oom();
         }
         memset(buf, ' ', bufsize);
         ptr = buf + len;
@@ -167,7 +167,16 @@ static int checkout(int fd)
                                 if (debug)
                                         fprintf(stderr, "Found word %s\n", word);
                                 him = malloc(sizeof (struct _mate));
+                                if (!him) {
+                                        free(buf);
+                                        return log_oom();
+                                }
                                 him->name = strdup(word);
+                                if (!him->name) {
+                                        free(buf);
+                                        free(him);
+                                        return log_oom();
+                                }
                                 him->state = STATE_OLD;
                                 udev_list_node_append(&him->node, &bunch);
                                 word = NULL;
@@ -276,7 +285,7 @@ static int missing(int fd)
 
         buf = malloc(bufsize);
         if (!buf)
-                return -1;
+                return log_oom();
 
         udev_list_node_foreach(him_node, &bunch) {
                 struct _mate *him = node_to_mate(him_node);
@@ -291,7 +300,7 @@ static int missing(int fd)
                                 tmpbuf = realloc(buf, bufsize);
                                 if (!tmpbuf) {
                                         free(buf);
-                                        return -1;
+                                        return log_oom();
                                 }
                                 buf = tmpbuf;
                         }
@@ -431,7 +440,17 @@ int main(int argc, char **argv)
                         if (debug)
                                 fprintf(stderr, "ID %s: not in database\n", argv[i]);
                         him = malloc(sizeof (struct _mate));
+                        if (!him) {
+                                ret = ENOMEM;
+                                goto out;
+                        }
+
                         him->name = malloc(strlen(argv[i]) + 1);
+                        if (!him->name) {
+                                ret = ENOMEM;
+                                goto out;
+                        }
+
                         strcpy(him->name, argv[i]);
                         him->state = STATE_NONE;
                         udev_list_node_append(&him->node, &bunch);
-- 
1.7.11.4

>From 6497710f8a333866eb21b96816134409e69b1de4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 12:40:29 +0200
Subject: [PATCH 03/18] libudev: check return value of rename

---
 src/libudev/libudev-device-private.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/libudev/libudev-device-private.c b/src/libudev/libudev-device-private.c
index 00fa3b8..489bea8 100644
--- a/src/libudev/libudev-device-private.c
+++ b/src/libudev/libudev-device-private.c
@@ -101,6 +101,7 @@ int udev_device_update_db(struct udev_device *udev_device)
         char filename[UTIL_PATH_SIZE];
         char filename_tmp[UTIL_PATH_SIZE];
         FILE *f;
+        int r;
 
         id = udev_device_get_id_filename(udev_device);
         if (id == NULL)
@@ -161,7 +162,9 @@ int udev_device_update_db(struct udev_device *udev_device)
         }
 
         fclose(f);
-        rename(filename_tmp, filename);
+        r = rename(filename_tmp, filename);
+        if (r < 0)
+                return -1;
         udev_dbg(udev, "created %s file '%s' for '%s'\n", has_info ? "db" : "empty",
              filename, udev_device_get_devpath(udev_device));
         return 0;
-- 
1.7.11.4

>From 440c47ec09f8a37c48b20f9eec4e68e429e60bf5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 12:52:08 +0200
Subject: [PATCH 04/18] udev: check return value of symlink

---
 src/udev/udev-watch.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/udev/udev-watch.c b/src/udev/udev-watch.c
index c27a280..eebcee6 100644
--- a/src/udev/udev-watch.c
+++ b/src/udev/udev-watch.c
@@ -98,6 +98,7 @@ void udev_watch_begin(struct udev *udev, struct udev_device *dev)
 {
         char filename[UTIL_PATH_SIZE];
         int wd;
+        int r;
 
         if (inotify_fd < 0)
                 return;
@@ -113,7 +114,9 @@ void udev_watch_begin(struct udev *udev, struct udev_device *dev)
         snprintf(filename, sizeof(filename), "/run/udev/watch/%d", wd);
         mkdir_parents(filename, 0755);
         unlink(filename);
-        symlink(udev_device_get_id_filename(dev), filename);
+        r = symlink(udev_device_get_id_filename(dev), filename);
+        if (r < 0)
+                log_error("Failed to create symlink: %m");
 
         udev_device_set_watch_handle(dev, wd);
 }
-- 
1.7.11.4

>From 007090da825584e7bc4a797bb4e39069cd551661 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 13:01:39 +0200
Subject: [PATCH 05/18] logind: check return value, log warning on error

---
 src/login/logind-session.c | 4 +++-
 src/login/logind-user.c    | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/login/logind-session.c b/src/login/logind-session.c
index f670db8..958b516 100644
--- a/src/login/logind-session.c
+++ b/src/login/logind-session.c
@@ -526,7 +526,9 @@ static int session_create_cgroup(Session *s) {
                 }
         }
 
-        hashmap_put(s->manager->session_cgroups, s->cgroup_path, s);
+        r = hashmap_put(s->manager->session_cgroups, s->cgroup_path, s);
+        if (r < 0)
+                log_warning("Failed to create mapping between cgroup and session");
 
         return 0;
 }
diff --git a/src/login/logind-user.c b/src/login/logind-user.c
index 9dfead9..b692b53 100644
--- a/src/login/logind-user.c
+++ b/src/login/logind-user.c
@@ -339,7 +339,9 @@ static int user_create_cgroup(User *u) {
                         log_warning("Failed to create cgroup %s:%s: %s", *k, p, strerror(-r));
         }
 
-        hashmap_put(u->manager->user_cgroups, u->cgroup_path, u);
+        r = hashmap_put(u->manager->user_cgroups, u->cgroup_path, u);
+        if (r < 0)
+                log_warning("Failed to create mapping between cgroup and user");
 
         return 0;
 }
-- 
1.7.11.4

>From 91500e3372a4ff2feed4a440f923a1cdedb73671 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 13:19:46 +0200
Subject: [PATCH 06/18] login: check return value of safe_atou32

---
 src/login/pam-module.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/login/pam-module.c b/src/login/pam-module.c
index d7f4128..6622103 100644
--- a/src/login/pam-module.c
+++ b/src/login/pam-module.c
@@ -452,10 +452,11 @@ _public_ PAM_EXTERN int pam_sm_open_session(
                 tty = "";
         }
 
+        r = 0;
         if (!isempty(cvtnr))
-                safe_atou32(cvtnr, &vtnr);
+                r = safe_atou32(cvtnr, &vtnr);
 
-        if (!isempty(display) && vtnr <= 0) {
+        if (!isempty(display) && !r && vtnr <= 0) {
                 if (isempty(seat))
                         get_seat_from_display(display, &seat, &vtnr);
                 else if (streq(seat, "seat0"))
-- 
1.7.11.4

>From 21354b48e0b2dc5cd650706e44f5ca3e1492f979 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 13:38:40 +0200
Subject: [PATCH 07/18] login: check return value of session_get_idle_hint

---
 src/login/logind-session-dbus.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c
index 9103781..2e7bfe0 100644
--- a/src/login/logind-session-dbus.c
+++ b/src/login/logind-session-dbus.c
@@ -183,12 +183,16 @@ static int bus_session_append_idle_hint_since(DBusMessageIter *i, const char *pr
         Session *s = data;
         dual_timestamp t;
         uint64_t u;
+        int r;
 
         assert(i);
         assert(property);
         assert(s);
 
-        session_get_idle_hint(s, &t);
+        r = session_get_idle_hint(s, &t);
+        if (r < 0)
+                return r;
+
         u = streq(property, "IdleSinceHint") ? t.realtime : t.monotonic;
 
         if (!dbus_message_iter_append_basic(i, DBUS_TYPE_UINT64, &u))
-- 
1.7.11.4

>From 259e40bc689a701261a8a74f73ddaad6c5437333 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 13:51:45 +0200
Subject: [PATCH 08/18] udev: check return value of write

---
 src/udev/collect/collect.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/udev/collect/collect.c b/src/udev/collect/collect.c
index 47c2ddd..feae4bb 100644
--- a/src/udev/collect/collect.c
+++ b/src/udev/collect/collect.c
@@ -305,7 +305,10 @@ static int missing(int fd)
                                 buf = tmpbuf;
                         }
                         snprintf(buf, strlen(him->name)+2, "%s ", him->name);
-                        write(fd, buf, strlen(buf));
+                        if (write(fd, buf, strlen(buf)) < 0) {
+                                free(buf);
+                                return -1;
+                        }
                 }
         }
 
-- 
1.7.11.4

>From abeffd3d50ac6916c146f95efe218fcdbd8f2d16 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 14:07:53 +0200
Subject: [PATCH 09/18] nspawn: check return value of mount

---
 src/nspawn/nspawn.c | 27 +++++++++++++++++++++------
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index ab7a239..c1a5b16 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -341,8 +341,13 @@ static int setup_timezone(const char *dest) {
         if (!where)
                 return log_oom();
 
-        if (mount("/etc/localtime", where, "bind", MS_BIND, NULL) >= 0)
-                mount("/etc/localtime", where, "bind", MS_BIND|MS_REMOUNT|MS_RDONLY, NULL);
+        if (mount("/etc/localtime", where, "bind", MS_BIND, NULL) >= 0) {
+                if (mount("/etc/localtime", where, "bind", MS_BIND|MS_REMOUNT|MS_RDONLY, NULL) < 0)
+                        log_warning("mount(%s) failed, file will be writable: %m", where);
+        } else {
+                log_error("mount(%s) failed: %m", where);
+                return -errno;
+        }
 
         free(where);
 
@@ -350,8 +355,13 @@ static int setup_timezone(const char *dest) {
         if (!where)
                 return log_oom();
 
-        if (mount("/etc/timezone", where, "bind", MS_BIND, NULL) >= 0)
-                mount("/etc/timezone", where, "bind", MS_BIND|MS_REMOUNT|MS_RDONLY, NULL);
+        if (mount("/etc/timezone", where, "bind", MS_BIND, NULL) >= 0) {
+                if (mount("/etc/timezone", where, "bind", MS_BIND|MS_REMOUNT|MS_RDONLY, NULL) < 0)
+                        log_warning("mount(%s) failed, file will be writable: %m", where);
+        } else {
+                log_error("mount(%s) failed: %m", where);
+                return -errno;
+        }
 
         free(where);
 
@@ -371,8 +381,13 @@ static int setup_resolv_conf(const char *dest) {
         if (!where)
                 return log_oom();
 
-        if (mount("/etc/resolv.conf", where, "bind", MS_BIND, NULL) >= 0)
-                mount("/etc/resolv.conf", where, "bind", MS_BIND|MS_REMOUNT|MS_RDONLY, NULL);
+        if (mount("/etc/resolv.conf", where, "bind", MS_BIND, NULL) >= 0) {
+                if (mount("/etc/resolv.conf", where, "bind", MS_BIND|MS_REMOUNT|MS_RDONLY, NULL) < 0)
+                        log_warning("mount(%s) failed, file will be writable: %m", where);
+        } else {
+                log_error("mount(%s) failed: %m", where);
+                return -errno;
+        }
 
         free(where);
 
-- 
1.7.11.4

>From 6e9f291b7f798155205fc51052e97475cfe6f71c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 14:54:30 +0200
Subject: [PATCH 10/18] udev: free rule structure on error

---
 src/udev/udev-rules.c | 33 +++++++++++++++------------------
 1 file changed, 15 insertions(+), 18 deletions(-)

diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
index d86e6bc..234620b 100644
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
@@ -1728,30 +1728,24 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
 
         /* init token array and string buffer */
         rules->tokens = malloc(PREALLOC_TOKEN * sizeof(struct token));
-        if (rules->tokens == NULL) {
-                free(rules);
-                return NULL;
-        }
+        if (rules->tokens == NULL)
+                return udev_rules_unref(rules);
+
         rules->token_max = PREALLOC_TOKEN;
 
         rules->buf = malloc(PREALLOC_STRBUF);
-        if (rules->buf == NULL) {
-                free(rules->tokens);
-                free(rules);
-                return NULL;
-        }
+        if (rules->buf == NULL)
+                return udev_rules_unref(rules);
+
         rules->buf_max = PREALLOC_STRBUF;
         /* offset 0 is always '\0' */
         rules->buf[0] = '\0';
         rules->buf_cur = 1;
 
         rules->trie_nodes = malloc(PREALLOC_TRIE * sizeof(struct trie_node));
-        if (rules->trie_nodes == NULL) {
-                free(rules->buf);
-                free(rules->tokens);
-                free(rules);
-                return NULL;
-        }
+        if (rules->trie_nodes == NULL)
+                return udev_rules_unref(rules);
+
         rules->trie_nodes_max = PREALLOC_TRIE;
         /* offset 0 is the trie root, with an empty string */
         memset(rules->trie_nodes, 0x00, sizeof(struct trie_node));
@@ -1763,11 +1757,11 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
                                NULL);
         if (!rules->dirs) {
                 log_error("failed to build config directory array");
-                return NULL;
+                return udev_rules_unref(rules);
         }
         if (!path_strv_canonicalize(rules->dirs)) {
                 log_error("failed to canonicalize config directories\n");
-                return NULL;
+                return udev_rules_unref(rules);
         }
         strv_uniq(rules->dirs);
 
@@ -1777,8 +1771,11 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
         r = conf_files_list_strv(&files, ".rules", (const char **)rules->dirs);
         if (r < 0) {
                 log_error("failed to enumerate rules files: %s\n", strerror(-r));
-                return NULL;
+                return udev_rules_unref(rules);
         }
+        rules->dirs_ts_usec = calloc(strv_length(rules->dirs), sizeof(long long));
+        if(!rules->dirs_ts_usec)
+                return udev_rules_unref(rules);
 
         /*
          * The offset value in the rules strct is limited; add all
-- 
1.7.11.4

>From 9d8ec3a8ab4689ac4db41c4819e116f562cd2739 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 15:00:43 +0200
Subject: [PATCH 11/18] locale: make sure that l is freed

---
 src/locale/localed.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/locale/localed.c b/src/locale/localed.c
index 667c5d1..a2d3814 100644
--- a/src/locale/localed.c
+++ b/src/locale/localed.c
@@ -1123,7 +1123,9 @@ static DBusHandlerResult locale_message_handler(
                                         "Locale\0");
                         if (!changed)
                                 goto oom;
-                }
+                } else
+                        strv_free(l);
+
         } else if (dbus_message_is_method_call(message, "org.freedesktop.locale1", "SetVConsoleKeyboard")) {
 
                 const char *keymap, *keymap_toggle;
-- 
1.7.11.4

>From 111a65c37996299a2ba5545c185ed211465cd8dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?V=C3=A1clav=20Pavl=C3=ADn?= <vpav...@redhat.com>
Date: Fri, 21 Sep 2012 15:03:28 +0200
Subject: [PATCH 12/18] modules-load: initalize files to null

---
 src/modules-load/modules-load.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules-load/modules-load.c b/src/modules-load/modules-load.c
index 6aeaf45..e72e382 100644
--- a/src/modules-load/modules-load.c
+++ b/src/modules-load/modules-load.c
@@ -171,7 +171,7 @@ static int load_module(struct kmod_ctx *ctx, const char *m) {
 
 int main(int argc, char *argv[]) {
         int r = EXIT_FAILURE, k;
-        char **files, **fn, **i;
+        char **files = NULL, **fn, **i;
         struct kmod_ctx *ctx;
 
         if (argc > 1) {
-- 
1.7.11.4

>From f33438f0980f90192e8442090177f5282b16e93a Mon Sep 17 00:00:00 2001
From: Lukas Nykryn <lnyk...@redhat.com>
Date: Fri, 21 Sep 2012 12:30:56 +0200
Subject: [PATCH 13/18] sysctl: fix error code handling

After  if (r <= 0) r can't  be 0 so
if (k < 0 && r == 0) never happens.
---
 src/sysctl/sysctl.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c
index 793796d..62d4c81 100644
--- a/src/sysctl/sysctl.c
+++ b/src/sysctl/sysctl.c
@@ -260,6 +260,8 @@ int main(int argc, char *argv[]) {
         if (r <= 0)
                 return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
 
+        r = 0;
+
         log_set_target(LOG_TARGET_AUTO);
         log_parse_environment();
         log_open();
-- 
1.7.11.4

>From ee8ae476ec42927e57de727dbd94c9e4c59a6632 Mon Sep 17 00:00:00 2001
From: Lukas Nykryn <lnyk...@redhat.com>
Date: Fri, 21 Sep 2012 12:33:32 +0200
Subject: [PATCH 14/18] login: missing break for getopt ARG_NO_ASK_PASSWORD in
 loginctl

---
 src/login/loginctl.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/login/loginctl.c b/src/login/loginctl.c
index 5ff8ea6..7ef9dde 100644
--- a/src/login/loginctl.c
+++ b/src/login/loginctl.c
@@ -1446,6 +1446,7 @@ static int parse_argv(int argc, char *argv[]) {
 
                 case ARG_NO_ASK_PASSWORD:
                         arg_ask_password = false;
+                        break;
 
                 case ARG_KILL_WHO:
                         arg_kill_who = optarg;
-- 
1.7.11.4

>From f083cca7f926d95149b66e4237ec614d9f42b1dd Mon Sep 17 00:00:00 2001
From: Lukas Nykryn <lnyk...@redhat.com>
Date: Fri, 21 Sep 2012 12:45:49 +0200
Subject: [PATCH 15/18] hwclock: check return value of strappend for null

---
 src/shared/hwclock.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/shared/hwclock.c b/src/shared/hwclock.c
index b93855d..7f38e74 100644
--- a/src/shared/hwclock.c
+++ b/src/shared/hwclock.c
@@ -78,7 +78,7 @@ static int rtc_open(int flags) {
                 p = strjoin("/sys/class/rtc/", de->d_name, "/hctosys", NULL);
                 if (!p) {
                         closedir(d);
-                        return -ENOMEM;
+                        return log_oom();
                 }
 
                 r = read_one_line_file(p, &v);
@@ -94,6 +94,12 @@ static int rtc_open(int flags) {
                         continue;
 
                 p = strappend("/dev/", de->d_name);
+
+                if (!p) {
+                        closedir(d);
+                        return log_oom();
+                }
+
                 fd = open(p, flags);
                 free(p);
 
-- 
1.7.11.4

>From 4f9408af71ff55aeac3b51d2fe6208c1cb8e2417 Mon Sep 17 00:00:00 2001
From: Lukas Nykryn <lnyk...@redhat.com>
Date: Fri, 21 Sep 2012 12:59:15 +0200
Subject: [PATCH 16/18] journal: free JournalFile when *ret is null

---
 src/journal/journal-file.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
index e778e1c..dec3bfa 100644
--- a/src/journal/journal-file.c
+++ b/src/journal/journal-file.c
@@ -2156,9 +2156,10 @@ int journal_file_open(
         if (r < 0)
                 goto fail;
 
-        if (ret)
-                *ret = f;
+        if (!ret)
+                goto fail;
 
+        *ret = f;
         return 0;
 
 fail:
-- 
1.7.11.4

>From 2f17b5ea8ef280aa18692739d7c100413f0ebdde Mon Sep 17 00:00:00 2001
From: Lukas Nykryn <lnyk...@redhat.com>
Date: Fri, 21 Sep 2012 13:01:29 +0200
Subject: [PATCH 17/18] udev: free fd before return in scsi_serial.c

---
 src/udev/scsi_id/scsi_serial.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/udev/scsi_id/scsi_serial.c b/src/udev/scsi_id/scsi_serial.c
index 5ad0c31..3c52dee 100644
--- a/src/udev/scsi_id/scsi_serial.c
+++ b/src/udev/scsi_id/scsi_serial.c
@@ -921,7 +921,8 @@ int scsi_get_serial(struct udev *udev,
                 }
         } else if (page_code != 0x00) {
                 log_debug("%s: unsupported page code 0x%d\n", dev_scsi->kernel, page_code);
-                return 1;
+                retval = 1;
+                goto completed;
         }
 
         /*
-- 
1.7.11.4

>From 6dab974e452bc7a73efba316f91c1de1e76b331b Mon Sep 17 00:00:00 2001
From: Lukas Nykryn <lnyk...@redhat.com>
Date: Fri, 21 Sep 2012 13:03:00 +0200
Subject: [PATCH 18/18] udev: free fd before return in accelerometer.c

---
 src/udev/accelerometer/accelerometer.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/udev/accelerometer/accelerometer.c b/src/udev/accelerometer/accelerometer.c
index b8ed7b8..67fed27 100644
--- a/src/udev/accelerometer/accelerometer.c
+++ b/src/udev/accelerometer/accelerometer.c
@@ -205,8 +205,10 @@ static void test_orientation(struct udev *udev,
 
                 r = read(fd, ev, sizeof(struct input_event) * 64);
 
-                if (r < (int) sizeof(struct input_event))
+                if (r < (int) sizeof(struct input_event)) {
+                        close(fd);
                         return;
+                }
 
                 for (i = 0; i < r / (int) sizeof(struct input_event); i++) {
                         if (got_syn == 1) {
-- 
1.7.11.4

_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to