| From 941038fc05be21202cab7a7a9434097fb55ecbe0 Mon Sep 17 00:00:00 2001 |
| From: Thorsten Glaser <tg@mirbsd.de> |
| Date: Thu, 31 Jul 2014 16:29:41 +0930 |
| Subject: [PATCH] __progname[] is provided by libc |
| |
| Rename local variable to tftpd_progname to avoid a clash with glibc |
| global symbols and work around Debian bug #519006 (Closes: #564052). |
| |
| [ hpa: specifically, double-underscore symbols in C are reserved for |
| the implementation, i.e. compiler/libc. ] |
| |
| Signed-off-by: Ron Lee <ron@debian.org> |
| Signed-off-by: H. Peter Anvin <hpa@linux.intel.com> |
| --- |
| tftpd/tftpd.c | 10 +++++----- |
| 1 file changed, 5 insertions(+), 5 deletions(-) |
| |
| diff --git a/tftpd/tftpd.c b/tftpd/tftpd.c |
| index e247b97..5fec7bf 100644 |
| --- a/tftpd/tftpd.c |
| +++ b/tftpd/tftpd.c |
| @@ -76,7 +76,7 @@ static int ai_fam = AF_INET; |
| #define TRIES 6 /* Number of attempts to send each packet */ |
| #define TIMEOUT_LIMIT ((1 << TRIES)-1) |
| |
| -const char *__progname; |
| +const char *tftpd_progname; |
| static int peer; |
| static unsigned long timeout = TIMEOUT; /* Current timeout value */ |
| static unsigned long rexmtval = TIMEOUT; /* Basic timeout value */ |
| @@ -395,9 +395,9 @@ int main(int argc, char **argv) |
| /* basename() is way too much of a pain from a portability standpoint */ |
| |
| p = strrchr(argv[0], '/'); |
| - __progname = (p && p[1]) ? p + 1 : argv[0]; |
| + tftpd_progname = (p && p[1]) ? p + 1 : argv[0]; |
| |
| - openlog(__progname, LOG_PID | LOG_NDELAY, LOG_DAEMON); |
| + openlog(tftpd_progname, LOG_PID | LOG_NDELAY, LOG_DAEMON); |
| |
| srand(time(NULL) ^ getpid()); |
| |
| @@ -946,14 +946,14 @@ int main(int argc, char **argv) |
| syslog daemon gets restarted by the time we get here. */ |
| if (secure && standalone) { |
| closelog(); |
| - openlog(__progname, LOG_PID | LOG_NDELAY, LOG_DAEMON); |
| + openlog(tftpd_progname, LOG_PID | LOG_NDELAY, LOG_DAEMON); |
| } |
| |
| #ifdef HAVE_TCPWRAPPERS |
| /* Verify if this was a legal request for us. This has to be |
| done before the chroot, while /etc is still accessible. */ |
| request_init(&wrap_request, |
| - RQ_DAEMON, __progname, |
| + RQ_DAEMON, tftpd_progname, |
| RQ_FILE, fd, |
| RQ_CLIENT_SIN, &from, RQ_SERVER_SIN, &myaddr, 0); |
| sock_methods(&wrap_request); |
| -- |
| 2.14.1 |
| |