diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/dracut-cpio/src/main.rs | 2 | ||||
-rw-r--r-- | src/install/dracut-install.c | 15 | ||||
-rw-r--r-- | src/install/util.h | 2 | ||||
-rw-r--r-- | src/util/util.c | 2 |
4 files changed, 16 insertions, 5 deletions
diff --git a/src/dracut-cpio/src/main.rs b/src/dracut-cpio/src/main.rs index c3bfe90..89662fe 100644 --- a/src/dracut-cpio/src/main.rs +++ b/src/dracut-cpio/src/main.rs @@ -286,7 +286,7 @@ fn archive_path<W: Seek + Write>( mut writer: W, ) -> std::io::Result<()> { let inpath = path; - let mut outpath = path.clone(); + let mut outpath = path; let mut datalen: u32 = 0; let mut rmajor: u32 = 0; let mut rminor: u32 = 0; diff --git a/src/install/dracut-install.c b/src/install/dracut-install.c index 485143a..0c34363 100644 --- a/src/install/dracut-install.c +++ b/src/install/dracut-install.c @@ -608,7 +608,7 @@ static int resolve_deps(const char *src) break; if (strstr(buf, "cannot be preloaded")) - break; + continue; if (strstr(buf, destrootdir)) break; @@ -828,7 +828,7 @@ static int dracut_install(const char *orig_src, const char *orig_dst, bool isdir if (ret == 0) { if (resolvedeps && S_ISREG(sb.st_mode) && (sb.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) { log_debug("'%s' already exists, but checking for any deps", fulldstpath); - ret = resolve_deps(fulldstpath + sysrootdirlen); + ret = resolve_deps(fullsrcpath + sysrootdirlen); } else log_debug("'%s' already exists", fulldstpath); @@ -2275,6 +2275,17 @@ finish2: hashmap_free(modules_suppliers); hashmap_free(processed_suppliers); + if (arg_mod_filter_path) + regfree(&mod_filter_path); + if (arg_mod_filter_nopath) + regfree(&mod_filter_nopath); + if (arg_mod_filter_symbol) + regfree(&mod_filter_symbol); + if (arg_mod_filter_nosymbol) + regfree(&mod_filter_nosymbol); + if (arg_mod_filter_noname) + regfree(&mod_filter_noname); + strv_free(firmwaredirs); strv_free(pathdirs); return r; diff --git a/src/install/util.h b/src/install/util.h index f022f15..358afc8 100644 --- a/src/install/util.h +++ b/src/install/util.h @@ -113,7 +113,7 @@ bool streq_ptr(const char *a, const char *b); #define newdup(t, p, n) ((t*) memdup(p, sizeof(t)*(n))) -#define malloc0(n) (calloc((n), 1)) +#define malloc0(n) (calloc(1, (n))) static inline const char *yes_no(bool b) { diff --git a/src/util/util.c b/src/util/util.c index b3498df..1d15241 100644 --- a/src/util/util.c +++ b/src/util/util.c @@ -273,7 +273,7 @@ static int getargs(int argc, char **argv) cmdline = next_arg(cmdline, &key, &value); if (strcmp(key, search_key) == 0) { if (search_value) { - if (strcmp(value, search_value) == 0) { + if (value && strcmp(value, search_value) == 0) { printf("%s\n", value); found_value = true; } |