[LTP] [PATCH v1 3/3] syscalls/mallinfo03: Add an overflow test when setting 2G size

Cyril Hrubis
2021-01-28T15:42:15Z

Hi!
> +void test_mallinfo(void)
> +{
> + struct mallinfo info;
> + char *buf;
> + size_t size = 2UL * 1024UL * 1024UL * 1024UL;
> +
> + buf = SAFE_MALLOC(size);

If nothing else use of SAFE_MALLOC() here is wrong. The call may
potentionally fail and return NULL since we are passing overly large
value there.

For example it will fail if memory overcommit is disabled and there is
not enough free memory.

So we should, at least, use malloc() instead and skip the test if NULL
was returned.

> + info = mallinfo();
> + if (info.hblkhd < 0) {
> + print_mallinfo("Test malloc 2G", &info);
> + tst_res(TFAIL, "The member of struct mallinfo overflow, we should use mallinfo2");
> + } else {
> + /*We will never get here*/
> + tst_res(TPASS, "The member of struct mallinfo doesn't overflow");
> + }
> + free(buf);
> +}
> +
> +static struct tst_test test = {
> + .test_all = test_mallinfo,
> +};
> +
> +#else
> +TST_TEST_TCONF("system doesn't implement non-POSIX mallinfo()");
> +#endif
> --
> 2.23.0
>
>
>
>
> --
> Mailing list info: https://lists.linux.it/listinfo/ltp

--
Cyril Hrubis
chrubis@suse.cz