mirror of
https://github.com/openwrt/packages.git
synced 2025-07-05 10:03:08 +00:00
92 lines
2.1 KiB
Diff
92 lines
2.1 KiB
Diff
--- a/libkmod/libkmod-config.c
|
|
+++ b/libkmod/libkmod-config.c
|
|
@@ -21,6 +21,7 @@
|
|
#include <ctype.h>
|
|
#include <dirent.h>
|
|
#include <errno.h>
|
|
+#include <libgen.h>
|
|
#include <stdarg.h>
|
|
#include <stddef.h>
|
|
#include <stdio.h>
|
|
@@ -794,7 +795,9 @@ static int conf_files_insert_sorted(stru
|
|
bool is_single = false;
|
|
|
|
if (name == NULL) {
|
|
- name = basename(path);
|
|
+ char *pathc = strdup(path);
|
|
+ name = basename(pathc);
|
|
+ free(pathc);
|
|
is_single = true;
|
|
}
|
|
|
|
--- a/shared/util.c
|
|
+++ b/shared/util.c
|
|
@@ -22,6 +22,7 @@
|
|
#include <assert.h>
|
|
#include <ctype.h>
|
|
#include <errno.h>
|
|
+#include <libgen.h>
|
|
#include <stdarg.h>
|
|
#include <stddef.h>
|
|
#include <stdio.h>
|
|
@@ -173,8 +174,10 @@ char *modname_normalize(const char *modn
|
|
char *path_to_modname(const char *path, char buf[static PATH_MAX], size_t *len)
|
|
{
|
|
char *modname;
|
|
+ char *pathc = strdup(path);
|
|
|
|
- modname = basename(path);
|
|
+ modname = basename(pathc);
|
|
+ free(pathc);
|
|
if (modname == NULL || modname[0] == '\0')
|
|
return NULL;
|
|
|
|
--- a/tools/depmod.c
|
|
+++ b/tools/depmod.c
|
|
@@ -22,6 +22,7 @@
|
|
#include <dirent.h>
|
|
#include <errno.h>
|
|
#include <getopt.h>
|
|
+#include <libgen.h>
|
|
#include <limits.h>
|
|
#include <regex.h>
|
|
#include <stdio.h>
|
|
@@ -757,14 +758,17 @@ static int cfg_files_insert_sorted(struc
|
|
struct cfg_file **files, *f;
|
|
size_t i, n_files, namelen, dirlen;
|
|
void *tmp;
|
|
+ char *dirc;
|
|
|
|
dirlen = strlen(dir);
|
|
if (name != NULL)
|
|
namelen = strlen(name);
|
|
else {
|
|
- name = basename(dir);
|
|
+ dirc = strdup(dir);
|
|
+ name = basename(dirc);
|
|
namelen = strlen(name);
|
|
dirlen -= namelen + 1;
|
|
+ free(dirc);
|
|
}
|
|
|
|
n_files = *p_n_files;
|
|
@@ -2613,7 +2617,7 @@ static int depmod_output(struct depmod *
|
|
int mode = 0644;
|
|
int fd;
|
|
|
|
- snprintf(tmp, sizeof(tmp), "%s.%i.%li.%li", itr->name, getpid(),
|
|
+ snprintf(tmp, sizeof(tmp), "%s.%i.%" PRId64 ".%" PRId64, itr->name, getpid(),
|
|
tv.tv_usec, tv.tv_sec);
|
|
fd = openat(dfd, tmp, flags, mode);
|
|
if (fd < 0) {
|
|
--- a/tools/kmod.c
|
|
+++ b/tools/kmod.c
|
|
@@ -22,6 +22,7 @@
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
+#include <libgen.h>
|
|
|
|
#include <shared/util.h>
|
|
|