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