]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
coredump: use path_equal_filename helper
authorLuca Boccassi <luca.boccassi@microsoft.com>
Wed, 7 Apr 2021 09:47:14 +0000 (10:47 +0100)
committerLuca Boccassi <luca.boccassi@microsoft.com>
Wed, 7 Apr 2021 13:03:49 +0000 (14:03 +0100)
src/coredump/coredump.c
src/coredump/coredumpctl.c

index d5b079a53bef5bc44cb0ca62c9b7c3b7a8346538..e55fbaa9083f6948b47f7a583455da065835af7e 100644 (file)
@@ -796,20 +796,10 @@ log:
         }
 
         JSON_VARIANT_OBJECT_FOREACH(module_name, module_json, json_metadata) {
-                _cleanup_free_ char *module_basename = NULL, *exe_basename = NULL;
                 JsonVariant *package_name, *package_version;
 
-                /* The module name, most likely parsed from the ELF core file,
-                 * sometimes contains the full path and sometimes does not. */
-                r = path_extract_filename(module_name, &module_basename);
-                if (r < 0)
-                        return log_error_errno(r, "Failed to parse module basename: %m");
-                r = path_extract_filename(context->meta[META_EXE], &exe_basename);
-                if (r < 0)
-                        return log_error_errno(r, "Failed to parse executable basename: %m");
-
                 /* We only add structured fields for the 'main' ELF module */
-                if (!streq(module_basename, exe_basename))
+                if (!path_equal_filename(module_name, context->meta[META_EXE]))
                         continue;
 
                 package_name = json_variant_by_key(module_json, "package");
index dffb92981b1fa12396a9477d6cee6bed14ad7fb4..02bad966c1cc7dd96bffc231889cd6f9d89c4003 100644 (file)
@@ -736,24 +736,10 @@ static int print_info(FILE *file, sd_journal *j, bool need_space) {
                         JsonVariant *module_json;
 
                         JSON_VARIANT_OBJECT_FOREACH(module_name, module_json, v) {
-                                _cleanup_free_ char *module_basename = NULL, *exe_basename = NULL;
                                 JsonVariant *build_id;
 
-                                /* The module name, most likely parsed from the ELF core file,
-                                 * sometimes contains the full path and sometimes does not. */
-                                r = path_extract_filename(module_name, &module_basename);
-                                if (r < 0) {
-                                        log_warning_errno(r, "Failed to parse module basename: %m");
-                                        break;
-                                }
-                                r = path_extract_filename(exe, &exe_basename);
-                                if (r < 0) {
-                                        log_warning_errno(r, "Failed to parse executable basename: %m");
-                                        break;
-                                }
-
                                 /* We only print the build-id for the 'main' ELF module */
-                                if (!streq(module_basename, exe_basename))
+                                if (!path_equal_filename(module_name, exe))
                                         continue;
 
                                 build_id = json_variant_by_key(module_json, "buildId");