• C
    livepatch/x86: check active func in consistency stack checking · 27057710
    Cheng Jian 提交于
    hulk inclusion
    category: bugfix
    bugzilla: 5507/31358
    CVE: NA
    ---------------------------
    
    When doing consistency stack checking, if we try to patch a
    function which has been patched already. We should check the
    new function(not the origin func) that is activeness currently,
    it's always the first entry in list func_node->func_stack.
    
    Example :
    	module : origin			livepatch v1		livepatch v2
    	func   : old func A -[enable]=> new func A' -[enable]=> new func A''
    	check  :		A			A'
    
    when we try to patch function A to new function A'' by livepatch
    v2, but the func A has already patched to function A' by livepatch
    v1, so function A' which provided in livepatch v1 is active in the
    stack instead of origin function A. Even if the long jump method is
    used, we jump to the new function A' using a call without LR, the
    origin function A will not appear in the stack. We must check the
    active function A' in consistency stack checking.
    Signed-off-by: NCheng Jian <cj.chengjian@huawei.com>
    Reviewed-By: NXie XiuQi <xiexiuqi@huawei.com>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    27057710
livepatch.c 8.4 KB