93 lines
3.0 KiB
Plaintext
93 lines
3.0 KiB
Plaintext
---
|
|
configure.ac | 4 ++--
|
|
doc/Makefile.am | 2 +-
|
|
src/fuser.c | 13 ++++++++-----
|
|
3 files changed, 11 insertions(+), 8 deletions(-)
|
|
|
|
--- configure.ac
|
|
+++ configure.ac 2017-06-28 13:10:43.594188007 +0000
|
|
@@ -42,7 +42,7 @@ fi
|
|
if test "$enable_timeout_stat" = "static"; then
|
|
AC_DEFINE([WITH_TIMEOUT_STAT], [2], [Use timeout on stat calls])
|
|
fi
|
|
-AM_CONDITIONAL([WANT_TIMEOUT_STAT], [test "$enable_timeout_stat" = "static"])
|
|
+AM_CONDITIONAL([WANT_TIMEOUT_STAT], [test "$enable_timeout_stat" != "no"])
|
|
|
|
# Use string search for network based file systems but only if the system
|
|
# has /proc/self/mountinfo
|
|
@@ -126,7 +126,7 @@ AC_CHECK_MEMBERS([struct user_regs_struc
|
|
struct user_regs_struct.rdi,
|
|
struct user_regs_struct.rsi,
|
|
struct user_regs_struct.rdx], [],[],
|
|
- [#include <bits/types.h>
|
|
+ [#include <sys/types.h>
|
|
#include <sys/user.h>])
|
|
AC_CHECK_MEMBERS([struct pt_regs.orig_gpr3,
|
|
struct pt_regs.gpr], [],[], [#include <linux/ptrace.h>])
|
|
--- doc/Makefile.am
|
|
+++ doc/Makefile.am 2017-06-28 13:10:43.594188007 +0000
|
|
@@ -1,5 +1,5 @@
|
|
|
|
-man_MANS = killall.1 peekfd.1 prtstat.1 pstree.1
|
|
+man_MANS = killall.1 peekfd.1 prtstat.1 pstree.1 pslog.1
|
|
EXTRA_MANS =
|
|
|
|
if WANT_FUSER
|
|
--- src/fuser.c
|
|
+++ src/fuser.c 2017-06-28 13:10:43.594188007 +0000
|
|
@@ -1041,6 +1041,7 @@ int main(int argc, char *argv[])
|
|
struct option *optr;
|
|
char *nsptr;
|
|
int skip_argv;
|
|
+ int seen_file;
|
|
|
|
struct option options[] = {
|
|
{"all", 0, NULL, 'a'},
|
|
@@ -1084,6 +1085,7 @@ int main(int argc, char *argv[])
|
|
#endif
|
|
atexit(atexit_free_lists);
|
|
|
|
+ seen_file = 0;
|
|
for (argc_cnt = 1; argc_cnt < argc; argc_cnt++) {
|
|
current_argv = argv[argc_cnt];
|
|
if (current_argv[0] == '-') { /* its an option */
|
|
@@ -1235,6 +1237,7 @@ int main(int argc, char *argv[])
|
|
}
|
|
}
|
|
this_name->matched_procs = NULL;
|
|
+ seen_file = 1;
|
|
if (opts & (OPT_MOUNTS | OPT_ISMOUNTPOINT)
|
|
&& this_name->name_space != NAMESPACE_FILE) {
|
|
free(this_name);
|
|
@@ -1288,7 +1291,7 @@ int main(int argc, char *argv[])
|
|
names_tail->next = this_name;
|
|
names_tail = this_name;
|
|
} /* for across the argvs */
|
|
- if (names_head == NULL)
|
|
+ if (names_head == NULL && !seen_file)
|
|
usage(_("No process specification given"));
|
|
|
|
/* Check if -M flag was used and if so check mounts */
|
|
@@ -1552,17 +1555,17 @@ check_dir(const pid_t pid, const char *d
|
|
struct device_list *dev_tmp;
|
|
struct unixsocket_list *sock_tmp;
|
|
struct stat st, lst;
|
|
- char dirpath[MAX_PATHNAME];
|
|
- char filepath[MAX_PATHNAME];
|
|
+ char dirpath[PATH_MAX+1];
|
|
+ char filepath[PATH_MAX+1];
|
|
|
|
- snprintf(dirpath, MAX_PATHNAME, "/proc/%d/%s", pid, dirname);
|
|
+ snprintf(dirpath, PATH_MAX , "/proc/%d/%s", pid, dirname);
|
|
if ((dirp = opendir(dirpath)) == NULL)
|
|
return;
|
|
while ((direntry = readdir(dirp)) != NULL) {
|
|
if (direntry->d_name[0] < '0' || direntry->d_name[0] > '9')
|
|
continue;
|
|
|
|
- snprintf(filepath, MAX_PATHNAME, "/proc/%d/%s/%s",
|
|
+ snprintf(filepath, PATH_MAX, "/proc/%d/%s/%s",
|
|
pid, dirname, direntry->d_name);
|
|
|
|
if (timeout(thestat, filepath, &st, 5) != 0) {
|