From: Konrad Rzeszutek Wilk Date: Wed, 2 Aug 2017 00:29:01 +0000 (+0000) Subject: livepatch: Expand check for safe_for_reapply if livepatch has only .rodata. X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~1228 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=66d3f83db68a529fee807151d9b2906851f58cac;p=xen.git livepatch: Expand check for safe_for_reapply if livepatch has only .rodata. If the livepatch has only .rodata sections then it is OK to also apply/revert/apply the livepatch without having to worry about the unforseen consequences. See commit 98b728a7b235c67e210f67f789db5d9eb38ca00c "livepatch: Disallow applying after an revert" for details. Reviewed-by: Ross Lagerwall Signed-off-by: Konrad Rzeszutek Wilk --- diff --git a/xen/common/livepatch.c b/xen/common/livepatch.c index 039382934d..b9376c94e9 100644 --- a/xen/common/livepatch.c +++ b/xen/common/livepatch.c @@ -417,9 +417,12 @@ static int move_payload(struct payload *payload, struct livepatch_elf *elf) } } - /* Only one RW section with non-zero size: .livepatch.funcs */ - if ( rw_buf_cnt == 1 && - !strcmp(elf->sec[rw_buf_sec].name, ELF_LIVEPATCH_FUNC) ) + /* + * Only one RW section with non-zero size: .livepatch.funcs, + * or only RO sections. + */ + if ( !rw_buf_cnt || (rw_buf_cnt == 1 && + !strcmp(elf->sec[rw_buf_sec].name, ELF_LIVEPATCH_FUNC)) ) payload->safe_to_reapply = true; out: xfree(offset);