free(p);
p = strdup(lib);
- pdir = dirname(p);
+ pdir = dirname_malloc(p);
if (!pdir)
return ret;
- pdir = strdup(pdir);
- ppdir = dirname(pdir);
+ ppdir = dirname_malloc(pdir);
if (!ppdir)
return ret;
- ppdir = strdup(ppdir);
- pppdir = dirname(ppdir);
+ pppdir = dirname_malloc(ppdir);
if (!pppdir)
return ret;
- pppdir = strdup(pppdir);
- if (!pppdir)
- return ret;
-
- strcpy(p, lib);
-
clibdir = streq(basename(ppdir), "glibc-hwcaps") ? pppdir : ppdir;
clib = strjoin(clibdir, "/", basename(p), NULL);
if (dracut_install(clib, clib, false, false, true) == 0)
int unoctchar(char c) _const_;
int dracut_asprintf(char **restrict strp, const char *restrict fmt, ...);
+char *dirname_malloc(const char *path);
#endif