[systemd-devel] [PATCH 1/2] namespace:Unchecked return value from library

David Herrmann dh.herrmann at gmail.com
Mon Nov 17 02:05:23 PST 2014


Hi

On Tue, Nov 11, 2014 at 11:33 AM, Susant Sahani <susant at redhat.com> wrote:
> fix:
>  CID 1237553 (#1 of 6): Unchecked return value from library
> (CHECKED_RETURN
>
> CID 1237553 (#3 of 6): Unchecked return value from library
> (CHECKED_RETURN)
>
> CID 1237553 (#4 of 6): Unchecked return value from library
> (CHECKED_RETURN)
>
> CID 1237553 (#5 of 6): Unchecked return value from library
> (CHECKED_RETURN
>
> CID 1237553 (#6 of 6): Unchecked return value from library
> (CHECKED_RETURN)
> ---
>  src/core/namespace.c | 44 +++++++++++++++++++++++++++++++++++++-------
>  1 file changed, 37 insertions(+), 7 deletions(-)
>
> diff --git a/src/core/namespace.c b/src/core/namespace.c
> index 4bc288d..94a8088 100644
> --- a/src/core/namespace.c
> +++ b/src/core/namespace.c
> @@ -157,14 +157,24 @@ static int mount_dev(BindMount *m) {
>                  return -errno;
>
>          dev = strappenda(temporary_mount, "/dev");
> -        mkdir(dev, 0755);
> +        r = mkdir(dev, 0755);
> +        if (r < 0) {
> +                r = -errno;
> +                goto fail;
> +        }
> +
>          if (mount("tmpfs", dev, "tmpfs", MS_NOSUID|MS_STRICTATIME, "mode=755") < 0) {
>                  r = -errno;
>                  goto fail;
>          }
>
>          devpts = strappenda(temporary_mount, "/dev/pts");
> -        mkdir(devpts, 0755);
> +        r = mkdir(devpts, 0755);
> +        if (r < 0) {
> +                r = -errno;
> +                goto fail;
> +        }
> +
>          if (mount("/dev/pts", devpts, NULL, MS_BIND, NULL) < 0) {
>                  r = -errno;
>                  goto fail;
> @@ -174,7 +184,7 @@ static int mount_dev(BindMount *m) {
>          symlink("pts/ptmx", devptmx);
>
>          devshm = strappenda(temporary_mount, "/dev/shm");
> -        mkdir(devshm, 01777);
> +        r = mkdir(devshm, 01777);

This lacks error handling.

>          r = mount("/dev/shm", devshm, NULL, MS_BIND, NULL);
>          if (r < 0) {
>                  r = -errno;
> @@ -182,15 +192,30 @@ static int mount_dev(BindMount *m) {
>          }
>
>          devmqueue = strappenda(temporary_mount, "/dev/mqueue");
> -        mkdir(devmqueue, 0755);
> +        r = mkdir(devmqueue, 0755);
> +        if (r < 0) {
> +                r = -errno;
> +                goto fail;
> +        }
> +
>          mount("/dev/mqueue", devmqueue, NULL, MS_BIND, NULL);
>
>          devkdbus = strappenda(temporary_mount, "/dev/kdbus");
> -        mkdir(devkdbus, 0755);
> +        r = mkdir(devkdbus, 0755);
> +        if (r < 0) {
> +                r = -errno;
> +                goto fail;
> +        }
> +
>          mount("/dev/kdbus", devkdbus, NULL, MS_BIND, NULL);
>
>          devhugepages = strappenda(temporary_mount, "/dev/hugepages");
> -        mkdir(devhugepages, 0755);
> +        r = mkdir(devhugepages, 0755);
> +        if (r < 0) {
> +                r = -errno;
> +                goto fail;
> +        }
> +
>          mount("/dev/hugepages", devhugepages, NULL, MS_BIND, NULL);
>
>          devlog = strappenda(temporary_mount, "/dev/log");
> @@ -289,7 +314,12 @@ static int mount_kdbus(BindMount *m) {
>          }
>
>          root = strappenda(temporary_mount, "/kdbus");
> -        mkdir(root, 0755);
> +        r = mkdir(root, 0755);
> +        if (r < 0) {
> +                r = -errno;
> +                goto fail;
> +        }
> +

I also wonder whether we should check "errno != EEXIST". Haven't
looked at it in detail, yet.

Thanks
David

>          if (mount("tmpfs", root, "tmpfs", MS_NOSUID|MS_STRICTATIME, "mode=777") < 0) {
>                  r = -errno;
>                  goto fail;
> --
> 2.1.0
>
> _______________________________________________
> systemd-devel mailing list
> systemd-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/systemd-devel


More information about the systemd-devel mailing list