aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac2
-rw-r--r--cram.c6
-rw-r--r--driver.c11
-rw-r--r--env.c2
-rw-r--r--fetchmail.c4
-rw-r--r--fetchmail.h18
-rw-r--r--gssapi.c3
-rw-r--r--imap.c2
-rw-r--r--interface.c11
-rw-r--r--md5.h2
-rw-r--r--netrc.c2
-rw-r--r--opie.c2
-rw-r--r--rcfile_l.l4
-rw-r--r--rfc2047e.c2
-rw-r--r--rfc822.c2
-rw-r--r--sink.c7
-rw-r--r--socket.c4
-rw-r--r--socket.h4
-rw-r--r--transact.c3
-rw-r--r--ucs/norm_charmap.c2
-rw-r--r--unmime.c4
21 files changed, 55 insertions, 42 deletions
diff --git a/configure.ac b/configure.ac
index 428fc3d3..69e38390 100644
--- a/configure.ac
+++ b/configure.ac
@@ -187,7 +187,7 @@ AC_CHECK_FUNCS(tcsetattr stty setsid geteuid seteuid dnl
atexit inet_aton strftime setrlimit socketpair dnl
sigaction strdup setlocale)
-AC_CHECK_DECLS(strerror)
+AC_CHECK_DECLS([strerror,getenv])
dnl INET6 is used by KAME/getnameinfo
AC_CACHE_CHECK(for AF_INET6/PF_INET6,ac_cv_inet6,
AC_COMPILE_IFELSE([
diff --git a/cram.c b/cram.c
index ee97475a..16591b8d 100644
--- a/cram.c
+++ b/cram.c
@@ -17,8 +17,8 @@
#include "i18n.h"
#include "md5.h"
-void hmac_md5 (char *password, size_t pass_len,
- char *challenge, size_t chal_len,
+void hmac_md5 (const char *password, size_t pass_len,
+ const char *challenge, size_t chal_len,
unsigned char *response, size_t resp_len)
{
int i;
@@ -60,7 +60,7 @@ void hmac_md5 (char *password, size_t pass_len,
MD5Final (response, &ctx);
}
-int do_cram_md5 (int sock, char *command, struct query *ctl, char *strip)
+int do_cram_md5 (int sock, const char *command, struct query *ctl, const char *strip)
/* authenticate as per RFC2195 */
{
int result;
diff --git a/driver.c b/driver.c
index 7785b89c..32cfffb1 100644
--- a/driver.c
+++ b/driver.c
@@ -492,10 +492,13 @@ static int fetch_messages(int mailserver_socket, struct query *ctl,
/* check if the message is old
* Note: the size of the message may not be known here */
- if (ctl->fetchall || force_retrieval)
- ;
- else if (ctl->server.base_protocol->is_old && (ctl->server.base_protocol->is_old)(mailserver_socket,ctl,num))
- msgcode = MSGLEN_OLD;
+ if (ctl->fetchall || force_retrieval) {
+ /* empty */
+ } else {
+ if (ctl->server.base_protocol->is_old && (ctl->server.base_protocol->is_old)(mailserver_socket,ctl,num)) {
+ msgcode = MSGLEN_OLD;
+ }
+ }
if (msgcode == MSGLEN_OLD)
{
/* To avoid flooding the syslog when using --keep,
diff --git a/env.c b/env.c
index 5dd54032..3b50d926 100644
--- a/env.c
+++ b/env.c
@@ -30,7 +30,9 @@
#include <locale.h>
#endif
+#ifndef HAVE_DECL_GETENV
extern char *getenv(const char *); /* needed on sysV68 R3V7.1. */
+#endif
void envquery(int argc, char **argv)
/* set up basic stuff from the environment (including the rc file name) */
diff --git a/fetchmail.c b/fetchmail.c
index e0ec1758..4e0ea519 100644
--- a/fetchmail.c
+++ b/fetchmail.c
@@ -72,9 +72,9 @@ flag versioninfo; /* emit only version info */
char *user; /* the name of the invoking user */
char *home; /* invoking user's home directory */
char *fmhome; /* fetchmail's home directory */
-char *program_name; /* the name to prefix error messages with */
+const char *program_name; /* the name to prefix error messages with */
flag configdump; /* dump control blocks for configurator */
-char *fetchmailhost; /* either `localhost' or the host's FQDN */
+const char *fetchmailhost; /* either `localhost' or the host's FQDN */
static int quitonly; /* if we should quit after killing the running daemon */
diff --git a/fetchmail.h b/fetchmail.h
index b43999f9..51562933 100644
--- a/fetchmail.h
+++ b/fetchmail.h
@@ -176,7 +176,7 @@ struct runctl
char *logfile; /** where to write log information */
char *idfile; /** where to store UID data */
char *pidfile; /** where to record the PID of daemon mode processes */
- char *postmaster;
+ const char *postmaster;
char *properties;
int poll_interval; /** poll interval in seconds (daemon mode, 0 == off) */
flag bouncemail;
@@ -255,7 +255,7 @@ struct hostdata /* shared among all user connections to given server */
struct idlist *akalist; /* server name first, then akas */
struct idlist *localdomains; /* list of pass-through domains */
int protocol; /* protocol type */
- char *service; /* service name */
+ const char *service; /* service name */
int interval; /* # cycles to skip between polls */
int authenticate; /* authentication mode to try */
int timeout; /* inactivity timout in seconds */
@@ -454,7 +454,7 @@ extern char *home; /* home directory of invoking user */
extern char *fmhome; /* fetchmail home directory */
extern int pass; /* number of re-polling pass */
extern flag configdump; /* dump control blocks as Python dictionary */
-extern char *fetchmailhost; /* either "localhost" or an FQDN */
+extern const char *fetchmailhost; /* either "localhost" or an FQDN */
extern int suppress_tags; /* suppress tags in tagged protocols? */
extern char shroud[PASSWORDLEN*2+3]; /* string to shroud in debug output */
#ifdef SDPS_ENABLE
@@ -638,10 +638,10 @@ int doETRN (struct query *);
int doODMR (struct query *);
/* authentication functions */
-int do_cram_md5(int sock, char *command, struct query *ctl, char *strip);
-int do_rfc1731(int sock, char *command, char *truename);
-int do_gssauth(int sock, char *command, char *service, char *hostname, char *username);
-int do_otp(int sock, char *command, struct query *ctl);
+int do_cram_md5(int sock, const char *command, struct query *ctl, const char *strip);
+int do_rfc1731(int sock, const char *command, const char *truename);
+int do_gssauth(int sock, const char *command, const char *service, const char *hostname, const char *username);
+int do_otp(int sock, const char *command, struct query *ctl);
/* miscellanea */
@@ -652,7 +652,7 @@ struct query *hostalloc(struct query *);
int parsecmdline (int, char **, struct runctl *, struct query *);
char *prependdir (const char *, const char *);
char *MD5Digest (unsigned const char *);
-void hmac_md5 (char *, size_t, char *, size_t, unsigned char *, size_t);
+void hmac_md5 (const char *, size_t, const char *, size_t, unsigned char *, size_t);
int POP3_auth_rpa(char *, char *, int socket);
typedef RETSIGTYPE (*SIGHANDLERTYPE) (int);
void deal_with_sigchld(void);
@@ -723,7 +723,7 @@ char *stpcpy(char *, const char*);
#endif /* __CYGWIN__ */
extern int mailserver_socket_temp;
-extern char *program_name;
+extern const char *program_name;
/* POSIX space characters,
* <tab>;<newline>;<vertical-tab>;<form-feed>;<carriage-return>;<space> */
diff --git a/gssapi.c b/gssapi.c
index 8189552a..4f8e766c 100644
--- a/gssapi.c
+++ b/gssapi.c
@@ -42,7 +42,8 @@
#define GSSAUTH_P_INTEGRITY 2
#define GSSAUTH_P_PRIVACY 4
-int do_gssauth(int sock, char *command, char *service, char *hostname, char *username)
+int do_gssauth(int sock, const char *command, const char *service,
+ const char *hostname, const char *username)
{
gss_buffer_desc request_buf, send_token;
gss_buffer_t sec_token;
diff --git a/imap.c b/imap.c
index 501f60e1..35b3bd07 100644
--- a/imap.c
+++ b/imap.c
@@ -418,7 +418,7 @@ static void capa_probe(int sock, struct query *ctl)
peek_capable = (imap_version >= IMAP4);
}
-static int do_authcert (int sock, char *command, const char *name)
+static int do_authcert (int sock, const char *command, const char *name)
/* do authentication "external" (authentication provided by client cert) */
{
char buf[256];
diff --git a/interface.c b/interface.c
index 0b0d5791..86332300 100644
--- a/interface.c
+++ b/interface.c
@@ -74,7 +74,7 @@ struct interface_pair_s {
#ifdef linux
#define have_interface_init
-static char *netdevfmt;
+static const char *netdevfmt;
void interface_init(void)
/* figure out which /proc/net/dev format to use */
@@ -173,13 +173,13 @@ static int get_ifinfo(const char *ifname, ifinfo_t *ifinfo)
result = FALSE;
else
{
- char *sp = strchr(ifname, '/');
+ char *tmp = xstrdup(ifname);
+ char *sp = strchr(tmp, '/');
/* hide slash and trailing info from ifname */
if (sp)
*sp = '\0';
result = _get_ifinfoGT_(socket_fd, stats_file, ifname, ifinfo);
- if (sp)
- *sp = '/';
+ free(tmp);
}
if (socket_fd >= 0)
SockClose(socket_fd);
@@ -579,6 +579,7 @@ void interface_parse(char *buf, struct hostdata *hp)
/* parse 'interface' specification */
{
char *cp1, *cp2;
+ char mask1[] = "255.255.255.255";
hp->interface = xstrdup(buf);
@@ -593,7 +594,7 @@ void interface_parse(char *buf, struct hostdata *hp)
/* find and isolate just the netmask */
if (!(cp2 = strchr(cp1, '/')))
- cp2 = "255.255.255.255";
+ cp2 = mask1;
else
*cp2++ = '\000';
diff --git a/md5.h b/md5.h
index 19530bca..83b748c4 100644
--- a/md5.h
+++ b/md5.h
@@ -22,7 +22,7 @@ struct MD5Context {
void MD5Init(struct MD5Context *context);
void MD5Update(struct MD5Context *context, const void *buf, unsigned len);
void MD5Final(void *digest, struct MD5Context *context);
-void MD5Transform(uint32 buf[4], uint32 const in[16]);
+void MD5Transform(uint32 buf[], uint32 const in[]);
char *MD5Digest (unsigned const char *s);
diff --git a/netrc.c b/netrc.c
index 196db671..de29cc8c 100644
--- a/netrc.c
+++ b/netrc.c
@@ -28,7 +28,7 @@
# define xmalloc malloc
# define xrealloc realloc
-char *program_name = "netrc";
+const char *program_name = "netrc";
#endif
/* Maybe add NEWENTRY to the account information list, LIST. NEWENTRY is
diff --git a/opie.c b/opie.c
index 395de2dd..94fd59b4 100644
--- a/opie.c
+++ b/opie.c
@@ -26,7 +26,7 @@ extern "C" {
}
#endif
-int do_otp(int sock, char *command, struct query *ctl)
+int do_otp(int sock, const char *command, struct query *ctl)
{
int i, rval;
char buffer[128];
diff --git a/rcfile_l.l b/rcfile_l.l
index 9a1fe637..8dcd8af1 100644
--- a/rcfile_l.l
+++ b/rcfile_l.l
@@ -19,6 +19,8 @@ int prc_lineno = 1;
#define SETSTATE(n) BEGIN(n)
#endif /* LEXDEBUG */
+#define YY_NO_INPUT
+
%}
/* this doesn't work with Linux lex, see the INSTALL file */
@@ -244,7 +246,7 @@ void escapes(const char *cp /** source string with escapes */,
* always succeed! */
if (*cp == '\\' && cp[1] && strchr("0123456789xX", cp[1]))
{
- char *dp;
+ const char *dp;
const char *hex = "00112233445566778899aAbBcCdDeEfF";
int dcount = 0;
diff --git a/rfc2047e.c b/rfc2047e.c
index 28777a30..e6f8f32b 100644
--- a/rfc2047e.c
+++ b/rfc2047e.c
@@ -17,7 +17,9 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+#ifndef _GNU_SOURCE
#define _GNU_SOURCE
+#endif
#include "fetchmail.h"
#include <string.h>
diff --git a/rfc822.c b/rfc822.c
index beff379d..97f26771 100644
--- a/rfc822.c
+++ b/rfc822.c
@@ -31,7 +31,7 @@ MIT license. Compile with -DMAIN to build the demonstrator.
#else
#include <unistd.h>
static int verbose;
-char *program_name = "rfc822";
+const char *program_name = "rfc822";
#endif /* MAIN */
#ifndef TRUE
diff --git a/sink.c b/sink.c
index f4fbf4fd..76cd2bb5 100644
--- a/sink.c
+++ b/sink.c
@@ -131,7 +131,7 @@ int smtp_setup(struct query *ctl)
for (idp = ctl->smtphunt; idp; idp = idp->next)
{
char *cp;
- char *portnum = SMTP_PORT;
+ const char *portnum = SMTP_PORT;
ctl->smtphost = idp->id; /* remember last host tried. */
if (ctl->smtphost[0]=='/')
@@ -262,12 +262,13 @@ char *rcpt_address(struct query *ctl, const char *id,
}
static int send_bouncemail(struct query *ctl, struct msgblk *msg,
- int userclass, char *message /* should have \r\n at the end */,
+ int userclass, const char *message /* should have \r\n at the end */,
int nerrors, char *errors[])
/* bounce back an error report a la RFC 1892 */
{
char daemon_name[15 + HOSTLEN] = "MAILER-DAEMON@";
- char boundary[BUFSIZ], *bounce_to;
+ char boundary[BUFSIZ];
+ const char *bounce_to;
int sock;
static char *fqdn_of_host = NULL;
const char *md1 = "MAILER-DAEMON", *md2 = "MAILER-DAEMON@";
diff --git a/socket.c b/socket.c
index f987040a..061322b9 100644
--- a/socket.c
+++ b/socket.c
@@ -385,7 +385,7 @@ static SSL *_ssl_context[FD_SETSIZE];
static SSL *SSLGetContext( int );
#endif /* SSL_ENABLE */
-int SockWrite(int sock, char *buf, int len)
+int SockWrite(int sock, const char *buf, int len)
{
int n, wrlen = 0;
#ifdef SSL_ENABLE
@@ -813,7 +813,7 @@ static const char *SSLCertGetCN(const char *mycert,
* uses SSL *ssl global variable, which is currently defined
* in this file
*/
-int SSLOpen(int sock, char *mycert, char *mykey, char *myproto, int certck, char *certpath,
+int SSLOpen(int sock, char *mycert, char *mykey, const char *myproto, int certck, char *certpath,
char *fingerprint, char *servercname, char *label, char **remotename)
{
struct stat randstat;
diff --git a/socket.h b/socket.h
index a32a3422..b340c4ce 100644
--- a/socket.h
+++ b/socket.h
@@ -44,7 +44,7 @@ int SockPeek(int sock);
Write a chunk of bytes to the socket (matches interface of fwrite).
Returns number of bytes successfully written.
*/
-int SockWrite(int sock, char *buf, int size);
+int SockWrite(int sock, const char *buf, int size);
/* from /usr/include/sys/cdefs.h */
#if !defined __GNUC__ || __GNUC__ < 2
@@ -75,7 +75,7 @@ FIXME: document this
int UnixOpen(const char *path);
#ifdef SSL_ENABLE
-int SSLOpen(int sock, char *mycert, char *mykey, char *myproto, int certck, char *certpath,
+int SSLOpen(int sock, char *mycert, char *mykey, const char *myproto, int certck, char *certpath,
char *fingerprint, char *servercname, char *label, char **remotename);
#endif /* SSL_ENABLE */
diff --git a/transact.c b/transact.c
index 85d8b009..5201ceef 100644
--- a/transact.c
+++ b/transact.c
@@ -799,9 +799,10 @@ eoh:
*/
if ((already_has_return_path==FALSE) && !strncasecmp("Return-Path:", line, 12) && (cp = nxtaddr(line)))
{
+ char nulladdr[] = "<>";
already_has_return_path = TRUE;
if (cp[0]=='\0') /* nxtaddr() strips the brackets... */
- cp="<>";
+ cp=nulladdr;
strncpy(msgblk.return_path, cp, sizeof(msgblk.return_path));
msgblk.return_path[sizeof(msgblk.return_path)-1] = '\0';
if (!ctl->mda) {
diff --git a/ucs/norm_charmap.c b/ucs/norm_charmap.c
index f00dcc26..e2a9aaf9 100644
--- a/ucs/norm_charmap.c
+++ b/ucs/norm_charmap.c
@@ -40,7 +40,7 @@ static char buf[16];
const char *norm_charmap(const char *name)
{
- char *p;
+ const char *p;
if (!name)
return name;
diff --git a/unmime.c b/unmime.c
index 1c0c8245..8ff782a5 100644
--- a/unmime.c
+++ b/unmime.c
@@ -337,7 +337,7 @@ static int CheckContentType(char *CntType)
* be really careful if you change this.
*/
- static char *DecodedTypes[] = {
+ static const char *DecodedTypes[] = {
"text/", /* Will match ALL content-type's starting with 'text/' */
"message/rfc822",
NULL
@@ -651,7 +651,7 @@ int UnMimeBodyline(char **bufp, flag delimited, flag softline)
#include <stdio.h>
#include <unistd.h>
-char *program_name = "unmime";
+const char *program_name = "unmime";
int outlevel = 0;
#define BUFSIZE_INCREMENT 4096