[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