Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:vlefebvre:unified
systemd
logger.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File logger.patch of Package systemd
Only in systemd-v255.4+suse.22.g56b53b17bc: series diff -Ppdru systemd-v255.4+suse.22.g56b53b17bc/src/boot/efi/boot.c systemd-v255.4+suse.22.g56b53b17bc-new/src/boot/efi/boot.c --- systemd-v255.4+suse.22.g56b53b17bc/src/boot/efi/boot.c 2024-04-14 23:30:32.554250145 +0200 +++ systemd-v255.4+suse.22.g56b53b17bc-new/src/boot/efi/boot.c 2024-04-15 00:09:49.692128325 +0200 @@ -1488,6 +1488,7 @@ static void boot_entry_add_type1( entry->initrd[n_initrd++] = xstr8_to_path(value); entry->initrd[n_initrd] = NULL; } else if (streq8(key, "add-on")) { + log_error_status(0, "Addon key found"); entry->addons = xrealloc_extra_item( uint16_t, entry->addons, @@ -1495,7 +1496,8 @@ static void boot_entry_add_type1( ); entry->addons[n_addons++] = xstr8_to_path(value); entry->addons[n_addons] = NULL; - continue; + log_error_status(0, "Addon key Added to list"); + //continue; } else if (streq8(key, "options")) { _cleanup_free_ char16_t *new = NULL; @@ -2400,9 +2402,11 @@ static EFI_STATUS image_start( } if (entry->addons) { + log_error_status(0, "Install Proto Addons from entry..."); err = addons_install_proto(loaded_image, entry->addons); if (err != EFI_SUCCESS) return log_error_status(err, "Error installing addons protocol: %m"); + log_error_status(0, "Installation done"); } efivar_set_time_usec(MAKE_GUID_PTR(LOADER), u"LoaderTimeExecUSec", 0); diff -Ppdru systemd-v255.4+suse.22.g56b53b17bc/src/boot/efi/device-path-util.c systemd-v255.4+suse.22.g56b53b17bc-new/src/boot/efi/device-path-util.c --- systemd-v255.4+suse.22.g56b53b17bc/src/boot/efi/device-path-util.c 2024-04-14 23:30:32.562250070 +0200 +++ systemd-v255.4+suse.22.g56b53b17bc-new/src/boot/efi/device-path-util.c 2024-04-15 16:40:20.371725543 +0200 @@ -2,6 +2,7 @@ #include "device-path-util.h" #include "util.h" +#include "log.h" EFI_STATUS make_multiple_file_device_path( EFI_HANDLE device, @@ -33,7 +34,7 @@ EFI_STATUS make_multiple_file_device_pat size_t o_dp_size = (uint8_t *) end_node - (uint8_t *) original_device_path; - *ret_dp = xnew(EFI_DEVICE_PATH*, n_files); + *ret_dp = xnew(EFI_DEVICE_PATH*, n_files+1); iterator_dp = ret_dp[0]; @@ -64,7 +65,7 @@ EFI_STATUS make_multiple_file_device_pat iterator_dp++; } - + *iterator_dp = NULL; return EFI_SUCCESS; } @@ -148,9 +149,11 @@ EFI_STATUS device_path_to_str(const EFI_ assert(dp); assert(ret); - + err = BS->LocateProtocol(MAKE_GUID_PTR(EFI_DEVICE_PATH_TO_TEXT_PROTOCOL), NULL, (void **) &dp_to_text); + if (err != EFI_SUCCESS) { + log_error_status(err, "Failed loading protocol, %m"); *ret = device_path_to_str_internal(dp); return EFI_SUCCESS; } diff -Ppdru systemd-v255.4+suse.22.g56b53b17bc/src/boot/efi/stub.c systemd-v255.4+suse.22.g56b53b17bc-new/src/boot/efi/stub.c --- systemd-v255.4+suse.22.g56b53b17bc/src/boot/efi/stub.c 2024-04-14 23:30:32.582249882 +0200 +++ systemd-v255.4+suse.22.g56b53b17bc-new/src/boot/efi/stub.c 2024-04-15 16:41:16.131171498 +0200 @@ -38,7 +38,6 @@ struct addon_entry { static int cmp_addon_entry(const struct addon_entry *s1, const struct addon_entry *s2) { assert(s1); assert(s2); - return strcmp16((const char16_t*)&s1->source_path, (const char16_t*)&s2->source_path); } @@ -238,6 +237,7 @@ static EFI_STATUS load_addons_from_dir( _cleanup_free_ char16_t *d = NULL; err = readdir(extra_dir, &dirent, &dirent_size); + if (err != EFI_SUCCESS) return log_error_status(err, "Failed to read addons directory of loaded image: %m"); if (!dirent) /* End of directory */ @@ -294,20 +294,32 @@ static EFI_STATUS load_addons_from_efi( err = BS->HandleProtocol(image->DeviceHandle, MAKE_GUID_PTR(SYSTEMD_ADDON_MEDIA), (void **) &addon_paths); - if (err == EFI_UNSUPPORTED) + if (err == EFI_UNSUPPORTED){ /* No addons from EFI, that's OK */ + log_error_status(0, "No addons from EFI protocol: %m"); return EFI_SUCCESS; + } if (err != EFI_SUCCESS) return log_error_status(err, "Failed to load addons from EFI protocol: %m"); + log_error_status(0, "Addon loaded from EFI protocol"); while (*addon_paths) { char16_t *spath = NULL; /* If we increment this pointer instead of addon_paths_split, we will arrive on a end node * marker */ const EFI_DEVICE_PATH *addon_dpath = *addon_paths; + log_error_status(0, "Path to str ..."); + if (*addon_paths == NULL) { + log_error_status(0, "addon_dpath NULL"); + } else { + log_error_status(0, "dp type %u", (*addon_paths)->Type); + } err = device_path_to_str(addon_dpath, &spath); - if (err != EFI_SUCCESS) + if (err != EFI_SUCCESS) { + log_error_status(err, "Failed to parse device path to str, %m"); return err; + } + log_error_status(0, "Path %ls", spath); if (*n_items + 2 > *n_allocated) { /* We allocate 16 entries at a time, as a matter of optimization */ @@ -325,8 +337,10 @@ static EFI_STATUS load_addons_from_efi( .device_path = TAKE_PTR(addon_dpath) }; *n_items = *n_items + 1; + log_error_status(0, "n_items %lu", *n_items); addon_paths++; } + log_error_status(0, "loop end"); return EFI_SUCCESS; } @@ -444,6 +458,7 @@ static EFI_STATUS load_addons( char16_t ***ret_dt_filenames, size_t *ret_n_dt) { + log_error_status(0, "Sarting Load addons ..."); _cleanup_free_ struct addon_entry *addons = NULL; _cleanup_free_ size_t *dt_sizes = NULL; _cleanup_(file_closep) EFI_FILE *root = NULL; @@ -476,21 +491,34 @@ static EFI_STATUS load_addons( if (err != EFI_SUCCESS) return log_error_status(err, "Unable to open root directory: %m"); + log_error_status(0, "Load addons from dir ..."); err = load_addons_from_dir(loaded_image, root, prefix, &addons, &n_items, &n_allocated); if (err != EFI_SUCCESS) return err; + log_error_status(0, "addons loaded from dir. Number loaded: %lu", n_items); + log_error_status(0, "Load addons from efi ..."); err = load_addons_from_efi(loaded_image, &addons, &n_items, &n_allocated); if (err != EFI_SUCCESS) return err; + log_error_status(0, "addons loaded from efi. Number loaded: %lu", n_items); if (n_items == 0) return EFI_SUCCESS; /* Empty directory */ + for (size_t i = 0; i < n_items; i++) { + log_error_status(0, "addon %lu: %ls, length: %u, type: %u, SubType: %u", + i, + addons[i].source_path, + addons[i].device_path->Length, + addons[i].device_path->Type, + addons[i].device_path->SubType); + } /* Now, sort the files we found, to make this uniform and stable (and to ensure the TPM measurements * are not dependent on read order) */ - sort_pointer_array((void**) addons, n_items, (compare_pointer_func_t) cmp_addon_entry); - + //sort_pointer_array((void**) addons, n_items, (compare_pointer_func_t) cmp_addon_entry); + //log_error_status(0, "addons sorted"); + for (size_t i = 0; i < n_items; i++) { size_t addrs[_UNIFIED_SECTION_MAX] = {}, szs[_UNIFIED_SECTION_MAX] = {}; _cleanup_(unload_imagep) EFI_HANDLE addon = NULL; @@ -498,12 +526,18 @@ static EFI_STATUS load_addons( /* By using shim_load_image, we cover both the case where the PE files are signed with MoK * and with DB, and running with or without shim. */ + log_error_status(0, "load addoni %lu: %ls, length: %u, type: %u, SubType: %u", i, + addons[i].source_path, + addons[i].device_path->Length, + addons[i].device_path->Type, + addons[i].device_path->SubType); err = shim_load_image(stub_image, addons[i].device_path, &addon); if (err != EFI_SUCCESS) { log_error_status(err, "Failed to read '%ls', ignoring: %m", addons[i].source_path); continue; } + log_error_status(0, "addon loaded to shim"); err = BS->HandleProtocol(addon, MAKE_GUID_PTR(EFI_LOADED_IMAGE_PROTOCOL), @@ -627,6 +661,8 @@ static EFI_STATUS run(EFI_HANDLE image) CLEANUP_ARRAY(dt_bases_addons_uki, n_dts_addons_uki, dt_bases_free); CLEANUP_ARRAY(dt_filenames_addons_global, n_dts_addons_global, dt_filenames_free); CLEANUP_ARRAY(dt_filenames_addons_uki, n_dts_addons_uki, dt_filenames_free); + + log_error_status(0, "Load addons ..."); /* Now that we have the UKI sections loaded, also load global first and then local (per-UKI) * addons. The data is loaded at once, and then used later. */ diff -Ppdru systemd-v255.4+suse.22.g56b53b17bc/src/boot/efi/util.h systemd-v255.4+suse.22.g56b53b17bc-new/src/boot/efi/util.h --- systemd-v255.4+suse.22.g56b53b17bc/src/boot/efi/util.h 2024-04-14 23:30:32.554250145 +0200 +++ systemd-v255.4+suse.22.g56b53b17bc-new/src/boot/efi/util.h 2024-04-15 00:49:07.214584638 +0200 @@ -61,7 +61,7 @@ static inline void **xrealloc_extra_k_it return (void**)xrealloc(p, (current_size + 1) * item_size, new_size); } -#define xrealloc_extra_item(type, p, current_size) ((type **) xrealloc_extra_k_items(p, current_size, sizeof(type), 1)) +#define xrealloc_extra_item(type, p, current_size) ((type **) xrealloc_extra_k_items(p, sizeof(type *), current_size, 1)) #define xnew(type, n) ((type *) xmalloc_multiply((n), sizeof(type))) typedef struct { diff: systemd-v255.4+suse.22.g56b53b17bc/test/testdata: recursive directory loop
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor