2022-11-05 11:16:15

by Yue Haibing

[permalink] [raw]
Subject: [PATCH] selftests: cgroup: Fix unsigned comparison with less than zero

'size' is unsigned, it never less than zero.

Fixes: 6c26df84e1f2 ("selftests: cgroup: return -errno from cg_read()/cg_write() on failure")
Signed-off-by: YueHaibing <[email protected]>
---
tools/testing/selftests/cgroup/cgroup_util.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/cgroup/cgroup_util.c b/tools/testing/selftests/cgroup/cgroup_util.c
index 4c52cc6f2f9c..e8bbbdb77e0d 100644
--- a/tools/testing/selftests/cgroup/cgroup_util.c
+++ b/tools/testing/selftests/cgroup/cgroup_util.c
@@ -555,6 +555,7 @@ int proc_mount_contains(const char *option)
ssize_t proc_read_text(int pid, bool thread, const char *item, char *buf, size_t size)
{
char path[PATH_MAX];
+ ssize_t ret;

if (!pid)
snprintf(path, sizeof(path), "/proc/%s/%s",
@@ -562,8 +563,8 @@ ssize_t proc_read_text(int pid, bool thread, const char *item, char *buf, size_t
else
snprintf(path, sizeof(path), "/proc/%d/%s", pid, item);

- size = read_text(path, buf, size);
- return size < 0 ? -1 : size;
+ ret = read_text(path, buf, size);
+ return ret < 0 ? -1 : ret;
}

int proc_read_strstr(int pid, bool thread, const char *item, const char *needle)
--
2.17.1



2022-11-05 22:42:35

by Yosry Ahmed

[permalink] [raw]
Subject: Re: [PATCH] selftests: cgroup: Fix unsigned comparison with less than zero

On Sat, Nov 5, 2022 at 4:06 AM YueHaibing <[email protected]> wrote:
>
> 'size' is unsigned, it never less than zero.
>
> Fixes: 6c26df84e1f2 ("selftests: cgroup: return -errno from cg_read()/cg_write() on failure")
> Signed-off-by: YueHaibing <[email protected]>

Thanks for fixing this!
FWIW,

Reviewed-by: Yosry Ahmed <[email protected]>




> ---
> tools/testing/selftests/cgroup/cgroup_util.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/cgroup/cgroup_util.c b/tools/testing/selftests/cgroup/cgroup_util.c
> index 4c52cc6f2f9c..e8bbbdb77e0d 100644
> --- a/tools/testing/selftests/cgroup/cgroup_util.c
> +++ b/tools/testing/selftests/cgroup/cgroup_util.c
> @@ -555,6 +555,7 @@ int proc_mount_contains(const char *option)
> ssize_t proc_read_text(int pid, bool thread, const char *item, char *buf, size_t size)
> {
> char path[PATH_MAX];
> + ssize_t ret;
>
> if (!pid)
> snprintf(path, sizeof(path), "/proc/%s/%s",
> @@ -562,8 +563,8 @@ ssize_t proc_read_text(int pid, bool thread, const char *item, char *buf, size_t
> else
> snprintf(path, sizeof(path), "/proc/%d/%s", pid, item);
>
> - size = read_text(path, buf, size);
> - return size < 0 ? -1 : size;
> + ret = read_text(path, buf, size);
> + return ret < 0 ? -1 : ret;
> }
>
> int proc_read_strstr(int pid, bool thread, const char *item, const char *needle)
> --
> 2.17.1
>

2022-11-08 01:23:59

by Roman Gushchin

[permalink] [raw]
Subject: Re: [PATCH] selftests: cgroup: Fix unsigned comparison with less than zero

On Sat, Nov 05, 2022 at 07:06:11PM +0800, YueHaibing wrote:
> 'size' is unsigned, it never less than zero.
>
> Fixes: 6c26df84e1f2 ("selftests: cgroup: return -errno from cg_read()/cg_write() on failure")
> Signed-off-by: YueHaibing <[email protected]>
> ---
> tools/testing/selftests/cgroup/cgroup_util.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/cgroup/cgroup_util.c b/tools/testing/selftests/cgroup/cgroup_util.c
> index 4c52cc6f2f9c..e8bbbdb77e0d 100644
> --- a/tools/testing/selftests/cgroup/cgroup_util.c
> +++ b/tools/testing/selftests/cgroup/cgroup_util.c
> @@ -555,6 +555,7 @@ int proc_mount_contains(const char *option)
> ssize_t proc_read_text(int pid, bool thread, const char *item, char *buf, size_t size)
> {
> char path[PATH_MAX];
> + ssize_t ret;
>
> if (!pid)
> snprintf(path, sizeof(path), "/proc/%s/%s",
> @@ -562,8 +563,8 @@ ssize_t proc_read_text(int pid, bool thread, const char *item, char *buf, size_t
> else
> snprintf(path, sizeof(path), "/proc/%d/%s", pid, item);
>
> - size = read_text(path, buf, size);
> - return size < 0 ? -1 : size;
> + ret = read_text(path, buf, size);
> + return ret < 0 ? -1 : ret;
> }

Indeed, good catch!

Acked-by: Roman Gushchin <[email protected]>

Thanks!

2022-11-08 07:11:06

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH] selftests: cgroup: Fix unsigned comparison with less than zero

Hi,

On 11/5/2022 4:36 PM, YueHaibing wrote:
> 'size' is unsigned, it never less than zero.
>
> Fixes: 6c26df84e1f2 ("selftests: cgroup: return -errno from cg_read()/cg_write() on failure")
> Signed-off-by: YueHaibing <[email protected]>

LGTM.
Reviewed-by: Mukesh Ojha <[email protected]>

-Mukesh
> ---
> tools/testing/selftests/cgroup/cgroup_util.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/cgroup/cgroup_util.c b/tools/testing/selftests/cgroup/cgroup_util.c
> index 4c52cc6f2f9c..e8bbbdb77e0d 100644
> --- a/tools/testing/selftests/cgroup/cgroup_util.c
> +++ b/tools/testing/selftests/cgroup/cgroup_util.c
> @@ -555,6 +555,7 @@ int proc_mount_contains(const char *option)
> ssize_t proc_read_text(int pid, bool thread, const char *item, char *buf, size_t size)
> {
> char path[PATH_MAX];
> + ssize_t ret;
>
> if (!pid)
> snprintf(path, sizeof(path), "/proc/%s/%s",
> @@ -562,8 +563,8 @@ ssize_t proc_read_text(int pid, bool thread, const char *item, char *buf, size_t
> else
> snprintf(path, sizeof(path), "/proc/%d/%s", pid, item);
>
> - size = read_text(path, buf, size);
> - return size < 0 ? -1 : size;
> + ret = read_text(path, buf, size);
> + return ret < 0 ? -1 : ret;
> }
>
> int proc_read_strstr(int pid, bool thread, const char *item, const char *needle)

2022-11-08 14:27:27

by Kamalesh Babulal

[permalink] [raw]
Subject: Re: [PATCH] selftests: cgroup: Fix unsigned comparison with less than zero



On 11/5/22 16:36, YueHaibing wrote:
> 'size' is unsigned, it never less than zero.
>
> Fixes: 6c26df84e1f2 ("selftests: cgroup: return -errno from cg_read()/cg_write() on failure")
> Signed-off-by: YueHaibing <[email protected]>

Reviewed-by: Kamalesh Babulal <[email protected]>

> ---
> tools/testing/selftests/cgroup/cgroup_util.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/cgroup/cgroup_util.c b/tools/testing/selftests/cgroup/cgroup_util.c
> index 4c52cc6f2f9c..e8bbbdb77e0d 100644
> --- a/tools/testing/selftests/cgroup/cgroup_util.c
> +++ b/tools/testing/selftests/cgroup/cgroup_util.c
> @@ -555,6 +555,7 @@ int proc_mount_contains(const char *option)
> ssize_t proc_read_text(int pid, bool thread, const char *item, char *buf, size_t size)
> {
> char path[PATH_MAX];
> + ssize_t ret;
>
> if (!pid)
> snprintf(path, sizeof(path), "/proc/%s/%s",
> @@ -562,8 +563,8 @@ ssize_t proc_read_text(int pid, bool thread, const char *item, char *buf, size_t
> else
> snprintf(path, sizeof(path), "/proc/%d/%s", pid, item);
>
> - size = read_text(path, buf, size);
> - return size < 0 ? -1 : size;
> + ret = read_text(path, buf, size);
> + return ret < 0 ? -1 : ret;
> }
>
> int proc_read_strstr(int pid, bool thread, const char *item, const char *needle)

--
Thanks,
Kamalesh