As demonstrate by the missing_functions.py test case, names of functions in the metadata file must match the names of functions in the live patch DSO, otherwise, Libpulp fails with an error and pollutes the namespace of the target process. For more information, see commit ID bbd166d04403.
A fix to this problem could be implemented either in the trigger tool, by checking that the live patch DSO actually contains all the functions that the metadata refers to; as well as in libpulp.so, which could also check that the live patch DSO, or unload the live patch object if anything goes wrong (although unloading the object could prove difficult if some functions are missing and others present).
As demonstrate by the
missing_functions.py
test case, names of functions in the metadata file must match the names of functions in the live patch DSO, otherwise, Libpulp fails with an error and pollutes the namespace of the target process. For more information, see commit ID bbd166d04403.A fix to this problem could be implemented either in the
trigger
tool, by checking that the live patch DSO actually contains all the functions that the metadata refers to; as well as inlibpulp.so
, which could also check that the live patch DSO, or unload the live patch object if anything goes wrong (although unloading the object could prove difficult if some functions are missing and others present).