]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lsblk: fix null pointer dereferences
authorSami Kerola <kerolasa@iki.fi>
Mon, 10 Dec 2018 20:14:12 +0000 (20:14 +0000)
committerSami Kerola <kerolasa@iki.fi>
Mon, 10 Dec 2018 20:25:58 +0000 (20:25 +0000)
Both catched with -Wnull-dereference compiler option:

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
misc-utils/lsblk-devtree.c
misc-utils/lsblk.c

index 82db4f8cf3334846f6d0c6a5f0f2ed8ed56f9c57..a2aa26aedf33c8bbde2fd4314d0207c40b7eacfb 100644 (file)
@@ -203,7 +203,8 @@ int lsblk_device_is_last_parent(struct lsblk_device *dev, struct lsblk_device *p
        struct lsblk_devdep *dp = list_last_entry(
                                        &dev->parents,
                                        struct lsblk_devdep, ls_parents);
-
+       if (!dp)
+               return 0;
        return dp->parent == parent;
 }
 
index 7ee6dff90ea167f07ae9dedbb6ecc2382cf7e22d..ffa1f82bfbec07816c800a9f10e1be2b7a81373d 100644 (file)
@@ -747,7 +747,7 @@ static char *device_get_data(
        case COL_OWNER:
        {
                struct stat *st = device_get_stat(dev);
-               struct passwd *pw = st ? NULL : getpwuid(st->st_uid);
+               struct passwd *pw = st ? getpwuid(st->st_uid) : NULL;
                if (pw)
                        str = xstrdup(pw->pw_name);
                break;
@@ -755,7 +755,7 @@ static char *device_get_data(
        case COL_GROUP:
        {
                struct stat *st = device_get_stat(dev);
-               struct group *gr = st ? NULL : getgrgid(st->st_gid);
+               struct group *gr = st ? getgrgid(st->st_gid) : NULL;
                if (gr)
                        str = xstrdup(gr->gr_name);
                break;