Re-send [PATCH] : Validating address in runtime
Wenji Huang
wenji.huang@oracle.com
Wed Jun 25 05:32:00 GMT 2008
Srinivasa DS wrote:
> Wenji Huang wrote:
>> Hi,
>>
>> Regarding PR6646, seems no good way to solve it. I just think maybe
>> double checking the address in runtime to make things safer.
>>
>> This patch adds validating address vs name mapping in runtime for
>> several symbols which are used in initializing process. So kernel
>> oops could be early avoided in case of incorrect vmlinux or wrong
>> address.
>>
>> Any comments are welcome.
>> ........................................
> > .......................................
>> return -1;
>> }
>>
>> + if (_stp_validate_addr("modules_op", (unsigned long)modules_op))
>> + return -1;
>> +
>
> Above mentioned code breaks systemtap on ppc64 systems, Execution of a
> basic systemtap script fails with following error. I removed above 3
> lines of code and now systemtap works well.
>
> [root@llm27lp1 systemtap]# ./stap -e 'probe kernel.function("sys_open")
> { printf("hello\n")}'
> Error inserting module
> '/tmp/stapIrEgpn/stap_be5242edefcfe2d56878f1a090e33b6b_250.ko':
> Operation not permitted
> Pass 5: run failed. Try again with more '-v' (verbose) options.
> =========================
> dmesg shows
>
> Systemtap Error at _stp_validate_addr:191 Incorrect mapping
> 0xc0000000005da7d0 vs modules_op.
> Systemtap Error at _stp_transport_init:277 failed to initialize modules
> ================
>
>
> Thanks
> Srinivasa DS.
>
>
>
>
>
Could you show what `cat /proc/kallsyms|grep c0000000005da7d0` says,
maybe there are some aliased symbols with same address.
sprint_symbols is not the good function to read /proc/kallsyms, but
kallsyms_lookup_name isn't exported. I will try to extend
_stp_validate_addr to cover aliased symbol case.
Or any better solution, please let me know.
Regards,
Wenji
More information about the Systemtap
mailing list