]> xenbits.xensource.com Git - livepatch-build-tools.git/commitdiff
create-diff-object: don't include symbols for .livepatch.hooks.* sections
authorRoger Pau Monne <roger.pau@citrix.com>
Wed, 6 Nov 2024 16:50:24 +0000 (17:50 +0100)
committerRoger Pau Monne <roger.pau@citrix.com>
Tue, 21 Jan 2025 13:11:05 +0000 (14:11 +0100)
Not all toolchains generate symbols for the .livepatch.hooks.* sections,
neither those symbols are required by the livepatch loading logic in Xen to
find and process the hooks.  Hooks in livepatch payloads are found and
processed based exclusively on section data.

The unconditional attempt to expect each hook serction to have a matching
symbol leads to a segmentation fault in create-diff-object when such symbol is
not present, as the code references a NULL pointer.

Fix this by not attempting to include symbols associated with hook sections.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Ross Lagerwall <ross.lagerwall@citrix.com>
create-diff-object.c

index d8a2afbf2774b3ecb515bf820f08d39b79fdc92c..924059a1842b626e5f4e8e4b9ccba8004cb49c59 100644 (file)
@@ -1555,8 +1555,6 @@ static int kpatch_include_hook_elements(struct kpatch_elf *kelf)
                                sym->sec->sym = NULL;
                                /* use section symbol instead */
                                rela->sym = sym->sec->secsym;
-                       } else {
-                               sec->secsym->include = 1;
                        }
                }
        }