[LTP] [PATCH] sysctl01: fix fails on live-patched kernels
Jan Baier
jbaier@suse.cz
Thu Mar 7 13:20:24 CET 2019
Hi!
>> Version from uname and /proc/sys/kernel/version does not match on
>> live-patched kernels (bsc#1100130, poo#38483).
>
> As far as I can tell the bug and progress issue are not accessible to
> public, there is no point in including them in the commit message.
>
> It would be better to describe here what causes the difference and how
> the difference looks like.
That is a good point, I thought the bug on bugzilla is public (but
apparently it is not).
>> Adjust the string from uname in such cases.
>>
>> Signed-off-by: Jan Baier <jbaier@suse.cz>
>> ---
>> testcases/kernel/syscalls/sysctl/sysctl01.c | 14 ++++++++++++++
>> 1 file changed, 14 insertions(+)
>>
>> diff --git testcases/kernel/syscalls/sysctl/sysctl01.c testcases/kernel/syscalls/sysctl/sysctl01.c
>> index 70905d806..fda29f060 100644
>> --- testcases/kernel/syscalls/sysctl/sysctl01.c
>> +++ testcases/kernel/syscalls/sysctl/sysctl01.c
>> @@ -1,6 +1,7 @@
>> /*
>> * Copyright (c) International Business Machines Corp., 2001
>> * Copyright (c) 2018 Xiao Yang <yangx.jy@cn.fujitsu.com>
>> + * Copyright (c) 2019 SUSE. All Rights Reserved.
>> *
>> * This program is free software; you can redistribute it and/or modify
>> * it under the terms of the GNU General Public License as published by
>> @@ -77,6 +78,19 @@ static void setup(void)
>> /* get kernel name and information */
>> if (uname(&buf) == -1)
>> tst_brk(TBROK | TERRNO, "uname() failed");
>> +
>> + /* revert uname change in case of kGraft/livepatch */
>> + char *klp_tag;
>> + char *right_brace;
>> +
>> + klp_tag = strstr(buf.version, "/kGraft-");
>> + if (!klp_tag)
>> + klp_tag = strstr(buf.version, "/lp-");
>> + if (klp_tag) {
>> + right_brace = strchr(klp_tag, ')');
>> + if (right_brace)
>> + strcpy(klp_tag, right_brace);
>
> This is not generally safe, the parameters passed to strcpy() must not
> overlap. I guess that the safe option would be copying the content into
> a new buffer.
Oh, my fault. I changed that from memmove and did not realize this
consequence. I will refactor this part.
>> + }
>> }
>>
>> static struct tst_test test = {
>> --
>> 2.21.0
>>
>>
>> --
>> Mailing list info: https://lists.linux.it/listinfo/ltp
>
--
Jan Baier
QA/Maintenance
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.linux.it/pipermail/ltp/attachments/20190307/c145f133/attachment.sig>
More information about the ltp
mailing list