Blob Blame History Raw
diff -up openssh-5.8p1/log.h.wIm openssh-5.8p1/log.h
--- openssh-5.8p1/log.h.wIm	2008-06-13 02:22:54.000000000 +0200
+++ openssh-5.8p1/log.h	2011-02-22 09:21:58.000000000 +0100
@@ -63,6 +63,8 @@ void     verbose(const char *, ...) __at
 void     debug(const char *, ...) __attribute__((format(printf, 1, 2)));
 void     debug2(const char *, ...) __attribute__((format(printf, 1, 2)));
 void     debug3(const char *, ...) __attribute__((format(printf, 1, 2)));
+void	 _debug_wIm_body(const char *, const char *, const char *, int);
+#define	debug_wIm(a) _debug_wIm_body(a,__func__,__FILE__,__LINE__)
 
 void	 do_log(LogLevel, const char *, va_list);
 void	 cleanup_exit(int) __attribute__((noreturn));
diff -up openssh-5.8p1/Makefile.in.wIm openssh-5.8p1/Makefile.in
--- openssh-5.8p1/Makefile.in.wIm	2011-02-04 01:42:13.000000000 +0100
+++ openssh-5.8p1/Makefile.in	2011-02-22 09:20:18.000000000 +0100
@@ -71,7 +71,7 @@ LIBSSH_OBJS=acss.o authfd.o authfile.o b
 	cipher-bf1.o cipher-ctr.o cipher-3des1.o cleanup.o \
 	compat.o compress.o crc32.o deattack.o fatal.o hostfile.o \
 	log.o match.o md-sha256.o moduli.o nchan.o packet.o \
-	readpass.o rsa.o ttymodes.o xmalloc.o addrmatch.o \
+	readpass.o rsa.o ttymodes.o whereIam.o xmalloc.o addrmatch.o \
 	atomicio.o key.o dispatch.o kex.o mac.o uidswap.o uuencode.o misc.o \
 	monitor_fdpass.o rijndael.o ssh-dss.o ssh-ecdsa.o ssh-rsa.o dh.o \
 	kexdh.o kexgex.o kexdhc.o kexgexc.o bufec.o kexecdh.o kexecdhc.o \
diff -up openssh-5.8p1/sshd.c.wIm openssh-5.8p1/sshd.c
--- openssh-5.8p1/sshd.c.wIm	2011-01-11 07:20:31.000000000 +0100
+++ openssh-5.8p1/sshd.c	2011-02-22 09:20:18.000000000 +0100
@@ -139,6 +139,9 @@ int deny_severity;
 
 extern char *__progname;
 
+/* trace of fork processes */
+extern int whereIam;
+
 /* Server configuration options. */
 ServerOptions options;
 
@@ -652,6 +655,7 @@ privsep_preauth(Authctxt *authctxt)
 	} else {
 		/* child */
 
+		whereIam = 1;
 		close(pmonitor->m_sendfd);
 
 		/* Demote the child */
@@ -693,6 +697,7 @@ privsep_postauth(Authctxt *authctxt)
 		exit(0);
 	}
 
+	whereIam = 2;
 	close(pmonitor->m_sendfd);
 
 	/* Demote the private keys to public keys. */
@@ -1302,6 +1307,8 @@ main(int ac, char **av)
 	Key *key;
 	Authctxt *authctxt;
 
+	whereIam = 0;
+
 #ifdef HAVE_SECUREWARE
 	(void)set_auth_parameters(ac, av);
 #endif
diff -up openssh-5.8p1/whereIam.c.wIm openssh-5.8p1/whereIam.c
--- openssh-5.8p1/whereIam.c.wIm	2011-02-22 09:20:18.000000000 +0100
+++ openssh-5.8p1/whereIam.c	2011-02-22 09:24:01.000000000 +0100
@@ -0,0 +1,9 @@
+
+int whereIam = -1;
+
+void _debug_wIm_body(const char *txt, const char *func, const char *file, int line)
+{
+	debug("%s: %s(%s:%d) wIm = %d, uid=%d, euid=%d", txt, func, file, line, whereIam, getuid(), geteuid());
+}
+
+