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

Yang Xu xuyang2018.jy@cn.fujitsu.com
Wed Feb 3 10:49:24 CET 2021


Hi Cyril
> 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.
>
Agree. Will do it in v2.
>> +	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
>





More information about the ltp mailing list