psmisc/psmisc-23.0.dif
2017-06-20 15:36:37 +00:00

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-20 14:31:15.914973762 +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-20 15:23:10.973015404 +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-20 14:33:26.908568387 +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 */
@@ -1234,6 +1236,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);
@@ -1287,7 +1290,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 */
@@ -1551,17 +1554,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) {