[PATCH 0/2] liveupdate: fixes in error handling

Pratyush Yadav posted 2 patches 1 week, 4 days ago
include/linux/liveupdate.h   |  7 ++++--
kernel/liveupdate/luo_file.c | 43 +++++++++++++++++++++---------------
mm/memfd_luo.c               |  7 +++++-
3 files changed, 36 insertions(+), 21 deletions(-)
[PATCH 0/2] liveupdate: fixes in error handling
Posted by Pratyush Yadav 1 week, 4 days ago
From: "Pratyush Yadav (Google)" <pratyush@kernel.org>

Hi Andrew,

This series contains some fixes in LUO's error handling paths.

The first patch deals with failed freeze() attempts. The cleanup path
calls unfreeze, and that clears some data needed by later unpreserve
calls.

The second patch is a bit more involved. It deals with failed retrieve()
attempts. To do so properly, it reworks some of the error handling logic
in luo_file core.

Both these fixes are "theoretical" -- in the sense that I have not been
able to reproduce either of them in normal operation. The only supported
file type right now is memfd, and there is nothing userspace can do
right now to make it fail its retrieve or freeze. I need to make the
retrieve or freeze fail by artificially injecting errors. The injected
errors trigger a use-after-free and a double-free.

That said, once more complex file handlers are added or memfd
preservation is used in ways not currently expected or covered by the
tests, we will be able to see them on real systems.

Regards,
Pratyush Yadav

Pratyush Yadav (Google) (2):
  liveupdate: luo_file: do not clear serialized_data on unfreeze
  liveupdate: luo_file: remember retrieve() status

 include/linux/liveupdate.h   |  7 ++++--
 kernel/liveupdate/luo_file.c | 43 +++++++++++++++++++++---------------
 mm/memfd_luo.c               |  7 +++++-
 3 files changed, 36 insertions(+), 21 deletions(-)


base-commit: 2e833046d66a40f9ad3de2948e6ecd791939fa59
-- 
2.52.0.457.g6b5491de43-goog