summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Lowe <richlowe@richlowe.net>2010-10-20 02:56:21 -0400
committerRichard Lowe <richlowe@richlowe.net>2010-10-20 02:56:21 -0400
commit0c5eac4bc364a83ff454e7b0d6e4f43bb1ac83a8 (patch)
tree0d9fd4670d230ad3855b87116c14908f1bcd81d8
parent64ff09abe6d54ea1167297938bd158dfabcb8ce5 (diff)
downloadillumos-gate-0c5eac4bc364a83ff454e7b0d6e4f43bb1ac83a8.tar.gz
350 pfiles crashes when inspecting itself
Reviewed by: garrett@nexenta.com Approved by: gwr@nexenta.com
-rw-r--r--usr/src/cmd/ptools/pfiles/pfiles.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usr/src/cmd/ptools/pfiles/pfiles.c b/usr/src/cmd/ptools/pfiles/pfiles.c
index cd5ee360d8..d752d8e95c 100644
--- a/usr/src/cmd/ptools/pfiles/pfiles.c
+++ b/usr/src/cmd/ptools/pfiles/pfiles.c
@@ -354,7 +354,11 @@ getflock(struct ps_prochandle *Pr, int fd, struct flock *flock_native)
#ifdef _LP64
struct flock64_32 flock_target;
- if (Pstatus(Pr)->pr_dmodel == PR_MODEL_ILP32) {
+ /*
+ * Pr may be NULL when pfiles is inspecting itself, but in that case
+ * we already know the data model of the two processes must match.
+ */
+ if ((Pr != NULL) && (Pstatus(Pr)->pr_dmodel == PR_MODEL_ILP32)) {
copyflock(flock_target, *flock_native);
ret = pr_fcntl(Pr, fd, F_GETLK, &flock_target);
copyflock(*flock_native, flock_target);