1 diff -burNp proftpd-1.3.2.orig/src/log.c proftpd-1.3.2-dud/src/log.c
2 --- proftpd-1.3.2.orig/src/wtmp.c 2008-12-17 00:43:55.000000000 +0100
3 +++ proftpd-1.3.2-dud/src/wtmp.c 2009-02-09 14:24:34.271689801 +0100
4 @@ -129,9 +129,31 @@ int log_wtmp(char *line, const char *nam
8 +#if defined(HAVE_UTMPX_H)
9 +#if !defined(WTMPX_FILE) && defined(_PATH_WTMPX)
10 +# define WTMPX_FILE _PATH_WTMPX
12 + static char *wtmp_file = NULL;
13 + if (wtmp_file == NULL) {
14 + if (access(WTMPX_FILE"x", F_OK) == 0)
15 + wtmp_file = WTMPX_FILE"x";
16 + else if (access(WTMPX_FILE, F_OK) == 0)
17 + wtmp_file = WTMPX_FILE;
18 + else if (access(WTMP_FILE"x", F_OK) == 0)
19 + wtmp_file = WTMP_FILE"x";
20 + else if (access(WTMP_FILE, F_OK) == 0)
21 + wtmp_file = WTMP_FILE;
23 + pr_log_pri(PR_LOG_WARNING, "cannot find "WTMPX_FILE);
28 + static char *wtmp_file = WTMP_FILE;
31 - (fd = open(WTMP_FILE, O_WRONLY|O_APPEND, 0)) < 0) {
32 - pr_log_pri(PR_LOG_WARNING, "wtmp %s: %s", WTMP_FILE, strerror(errno));
33 + (fd = open(wtmp_file, O_WRONLY|O_APPEND, 0)) < 0) {
34 + pr_log_pri(PR_LOG_WARNING, "wtmp %s: %s", wtmp_file, strerror(errno));