Exclude tcp->pfd from non-procfs systems
* defs.h: Make struct tcb::pfd fields conditional on USE_PROCFS.
* strace.c (alloc_tcb): Use tcp->pfd only if USE_PROCFS.
(droptcb): Likewise.
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
diff --git a/strace.c b/strace.c
index 127275c..7e59b08 100644
--- a/strace.c
+++ b/strace.c
@@ -1256,7 +1256,9 @@
tcp->pid = pid;
tcp->flags = TCB_INUSE | TCB_STARTUP;
tcp->outf = outf; /* Initialise to current out file */
+#ifdef USE_PROCFS
tcp->pfd = -1;
+#endif
nprocs++;
if (debug)
fprintf(stderr, "new tcb for pid %d, active tcbs:%d\n", tcp->pid, nprocs);
@@ -1613,10 +1615,11 @@
if (debug)
fprintf(stderr, "dropped tcb for pid %d, %d remain\n", tcp->pid, nprocs);
+#ifdef USE_PROCFS
if (tcp->pfd != -1) {
close(tcp->pfd);
tcp->pfd = -1;
-#ifdef FREEBSD
+# ifdef FREEBSD
if (tcp->pfd_reg != -1) {
close(tcp->pfd_reg);
tcp->pfd_reg = -1;
@@ -1625,12 +1628,11 @@
close(tcp->pfd_status);
tcp->pfd_status = -1;
}
-#endif /* !FREEBSD */
-#ifdef USE_PROCFS
+# endif
tcp->flags = 0; /* rebuild_pollv needs it */
rebuild_pollv();
-#endif
}
+#endif
if (outfname && followfork > 1 && tcp->outf)
fclose(tcp->outf);