[pgpool-hackers: 3108] Re: Compile warns
Tatsuo Ishii
ishii at sraoss.co.jp
Thu Nov 8 09:13:55 JST 2018
Hi Hoshiai-san,
From: Takuma Hoshiai <hoshiai at sraoss.co.jp>
Subject: [pgpool-hackers: 3104] Re: Compile warns
Date: Mon, 5 Nov 2018 17:36:23 +0900
Message-ID: <20181105173623.090e4fef86c57eb261b3ad51 at sraoss.co.jp>
> src/auth/pool_auth.c | 8 ++++++++
> src/auth/pool_hba.c | 19 -------------------
> src/auth/pool_passwd.c | 1 +
> src/include/pool_config.h | 3 +++
> src/include/watchdog/watchdog.h | 2 +-
> src/libs/pcp/pcp.c | 6 +++---
> src/main/main.c | 18 +++---------------
> src/main/pgpool_main.c | 8 ++++----
> src/protocol/child.c | 2 +-
> src/tools/pgenc/pg_enc.c | 2 +-
> src/tools/pgproto/read.c | 14 --------------
> src/tools/pgproto/send.c | 18 +++++-------------
> src/watchdog/watchdog.c | 2 +-
> src/watchdog/wd_json_data.c | 2 +-
> 14 files changed, 32 insertions(+), 73 deletions(-)
>
> diff --git a/src/auth/pool_auth.c b/src/auth/pool_auth.c
> index 598b03b..9975822 100644
> --- a/src/auth/pool_auth.c
> +++ b/src/auth/pool_auth.c
> @@ -1440,6 +1440,14 @@ authenticate_frontend(POOL_CONNECTION * frontend)
> break;
> case uaTrust:
> frontend->frontend_authenticated = true;
> + break;
> +#ifdef USE_PAM
> + case uaPAM:
> + ereport(ERROR,
> + (errmsg("authenticate_frontend called with PAM")));
> + break;
> +#endif /* USE_PAM */
> +
> }
> }
>
> diff --git a/src/auth/pool_hba.c b/src/auth/pool_hba.c
> index 2d7bbac..a628b5f 100644
> --- a/src/auth/pool_hba.c
> +++ b/src/auth/pool_hba.c
> @@ -128,7 +128,6 @@ static bool next_token(char **lineptr, char *buf, int bufsz,
> int elevel, char **err_msg);
> static List *next_field_expand(const char *filename, char **lineptr,
> int elevel, char **err_msg);
> -static POOL_STATUS CheckUserExist(char *username);
>
> #ifdef USE_PAM
> #ifdef HAVE_PAM_PAM_APPL_H
> @@ -2062,21 +2061,3 @@ static POOL_STATUS CheckPAMAuth(POOL_CONNECTION * frontend, char *user, char *pa
> }
>
> #endif /* USE_PAM */
> -
> -
> -
I suggest not to remove CheckUserExist(), rather #ifdef out unless
explict authorization of removing from Usama. He may have feature plan
to use this function.
> -static POOL_STATUS CheckUserExist(char *username)
> -{
> - char *passwd;
> -
> - /* Look for the entry in pool_passwd */
> - passwd = pool_get_passwd(username);
> -
> - if (passwd == NULL)
> - return POOL_ERROR;
> -
> - /*
> - * Ok for now. Actual authentication will be performed later.
> - */
> - return POOL_CONTINUE;
> -}
> diff --git a/src/auth/pool_passwd.c b/src/auth/pool_passwd.c
> index b31de5e..c84136b 100644
> --- a/src/auth/pool_passwd.c
> +++ b/src/auth/pool_passwd.c
> @@ -577,6 +577,7 @@ get_decrypted_password(const char *shadow_pass)
> {
> ereport(ERROR,
> (errmsg("unable to decrypt password")));
> + return NULL;
> }
> #endif
>
> diff --git a/src/include/pool_config.h b/src/include/pool_config.h
> index 844e998..af3d153 100644
> --- a/src/include/pool_config.h
> +++ b/src/include/pool_config.h
> @@ -26,12 +26,15 @@
> #ifndef POOL_CONFIG_H
> #define POOL_CONFIG_H
>
> +#include <sys/utsname.h>
> +
> #include "pcp/libpcp_ext.h"
>
> /*
> * watchdog
> */
> #define WD_MAX_HOST_NAMELEN (128)
> +#define WD_MAX_NODE_NAMELEN (WD_MAX_HOST_NAMELEN + POOLCONFIG_MAXPORTLEN + sizeof(((struct utsname *)NULL)->sysname) + sizeof(((struct utsname *)NULL)->nodename) + 3)
> #define WD_MAX_PATH_LEN (128)
> #define MAX_WATCHDOG_NUM (128)
> #define WD_SEND_TIMEOUT (1)
> diff --git a/src/include/watchdog/watchdog.h b/src/include/watchdog/watchdog.h
> index 36f3841..78df76c 100644
> --- a/src/include/watchdog/watchdog.h
> +++ b/src/include/watchdog/watchdog.h
> @@ -111,7 +111,7 @@ typedef struct WatchdogNode
> * from the node */
> struct timeval last_sent_time; /* timestamp when last packet was sent on
> * the node */
> - char nodeName[WD_MAX_HOST_NAMELEN]; /* name of this node */
> + char nodeName[WD_MAX_NODE_NAMELEN]; /* name of this node */
> char hostname[WD_MAX_HOST_NAMELEN]; /* host name */
> int wd_port; /* watchdog port */
> int pgpool_port; /* pgpool port */
> diff --git a/src/libs/pcp/pcp.c b/src/libs/pcp/pcp.c
> index 47715b6..50c5bf7 100644
> --- a/src/libs/pcp/pcp.c
> +++ b/src/libs/pcp/pcp.c
> @@ -1,5 +1,5 @@
> /*
> - * $Header$
> +FILE * $Header$
> *
> * Handles PCP connection, and protocol communication with pgpool-II
> * These are client APIs. Server program should use APIs in pcp_stream.c
> @@ -1826,7 +1826,7 @@ getPoolPassFilename(char *pgpassfile)
>
> if (!get_home_directory(homedir, sizeof(homedir)))
> return false;
> - snprintf(pgpassfile, MAXPGPATH, "%s/%s", homedir, PCPPASSFILE);
> + snprintf(pgpassfile, MAXPGPATH + sizeof(PCPPASSFILE) + 1, "%s/%s", homedir, PCPPASSFILE);
> }
> return true;
> }
> @@ -1839,7 +1839,7 @@ static char *
> PasswordFromFile(PCPConnInfo * pcpConn, char *hostname, char *port, char *username)
> {
> FILE *fp;
> - char pgpassfile[MAXPGPATH];
> + char pgpassfile[MAXPGPATH + sizeof(PCPPASSFILE) + 1];
> struct stat stat_buf;
> #define LINELEN NAMEDATALEN*5
> char buf[LINELEN];
> diff --git a/src/main/main.c b/src/main/main.c
> index 5392dac..eec3c3e 100644
> --- a/src/main/main.c
> +++ b/src/main/main.c
> @@ -83,7 +83,7 @@ main(int argc, char **argv)
> char pcp_conf_file_path[POOLMAXPATHLEN + 1];
> char conf_file_path[POOLMAXPATHLEN + 1];
> char hba_file_path[POOLMAXPATHLEN + 1];
> - char pool_passwd_key_file_path[POOLMAXPATHLEN + 1];
> + char pool_passwd_key_file_path[POOLMAXPATHLEN + 1 + sizeof(POOLKEYFILE) + 1];
>
> static struct option long_options[] = {
> {"hba-file", required_argument, NULL, 'a'},
> @@ -204,19 +204,7 @@ main(int argc, char **argv)
> }
> }
>
> -#ifdef NOT_USED
> -/* #ifdef USE_SSL */
> - /* /* global ssl init */ */
> -/* #if (OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined (LIBRESSL_VERSION_NUMBER)) */
> -/* OPENSSL_init_ssl(0, NULL); */
> -/* #else */
> -/* SSL_library_init(); */
> -/* #endif */
> -/* SSL_load_error_strings(); */
> - /* #endif /* USE_SSL */ */
> -#endif
> -
> - myargv = save_ps_display_args(myargc, myargv);
> + myargv = save_ps_display_args(myargc, myargv);
> /* create MemoryContexts */
> MemoryContextInit();
>
> @@ -434,7 +422,7 @@ get_pool_key_filename(char *poolKeyFile)
>
> if (!get_home_directory(homedir, sizeof(homedir)))
> return false;
> - snprintf(poolKeyFile, POOLMAXPATHLEN, "%s/%s", homedir, POOLKEYFILE);
> + snprintf(poolKeyFile, POOLMAXPATHLEN + sizeof(POOLKEYFILE) + 1, "%s/%s", homedir, POOLKEYFILE);
> }
> return true;
> }
> diff --git a/src/main/pgpool_main.c b/src/main/pgpool_main.c
> index 8182fc6..2c04d29 100644
> --- a/src/main/pgpool_main.c
> +++ b/src/main/pgpool_main.c
> @@ -910,21 +910,21 @@ create_inet_domain_socket(const char *hostname, const int port)
> if (status == -1)
> {
> int saved_errno = errno;
> - char hostname[NI_MAXHOST],
> + char host[NI_MAXHOST],
> servname[NI_MAXSERV];
>
> - if ((status = getnameinfo((struct sockaddr *) &addr, len, hostname, sizeof(hostname), servname, sizeof(servname), 0)))
> + if ((status = getnameinfo((struct sockaddr *) &addr, len, host, sizeof(host), servname, sizeof(servname), 0)))
> {
> ereport(NOTICE,
> (errmsg("getnameinfo failed while creating INET domain socket"),
> errdetail("getnameinfo failed with reason: \"%s\"", gai_strerror(status))));
>
> snprintf(servname, sizeof(servname), "%d", port);
> - snprintf(hostname, sizeof(hostname), "%s", hostname);
> + snprintf(host, sizeof(host), "%s", hostname);
> }
> ereport(FATAL,
> (errmsg("failed to create INET domain socket"),
> - errdetail("bind on host:\"%s\" server:\"%s\" failed with error \"%s\"", hostname, servname, strerror(saved_errno))));
> + errdetail("bind on host:\"%s\" server:\"%s\" failed with error \"%s\"", host, servname, strerror(saved_errno))));
> }
>
> backlog = pool_config->num_init_children * pool_config->listen_backlog_multiplier;
> diff --git a/src/protocol/child.c b/src/protocol/child.c
> index 13c6da9..fbfb449 100644
> --- a/src/protocol/child.c
> +++ b/src/protocol/child.c
> @@ -107,7 +107,7 @@ static int child_unix_fd = 0;
> extern int myargc;
> extern char **myargv;
>
> -char remote_ps_data[NI_MAXHOST]; /* used for set_ps_display */
> +char remote_ps_data[NI_MAXHOST + NI_MAXSERV + 2]; /* used for set_ps_display */
>
> volatile sig_atomic_t got_sighup = 0;
>
> diff --git a/src/tools/pgenc/pg_enc.c b/src/tools/pgenc/pg_enc.c
> index 12c2361..a7eaebb 100644
> --- a/src/tools/pgenc/pg_enc.c
> +++ b/src/tools/pgenc/pg_enc.c
> @@ -450,7 +450,7 @@ get_pool_key_filename(char *poolKeyFile)
>
> if (!get_home_directory(homedir, sizeof(homedir)))
> return false;
> - snprintf(poolKeyFile, POOLMAXPATHLEN, "%s/%s", homedir, POOLKEYFILE);
> + snprintf(poolKeyFile, POOLMAXPATHLEN + sizeof(POOLKEYFILE) + 1, "%s/%s", homedir, POOLKEYFILE);
> }
> return true;
> }
> diff --git a/src/tools/pgproto/read.c b/src/tools/pgproto/read.c
> index 11c5a8f..d0ffee3 100644
> --- a/src/tools/pgproto/read.c
> +++ b/src/tools/pgproto/read.c
> @@ -29,7 +29,6 @@
>
> static char read_char(PGconn *conn);
> static int read_int32(PGconn *conn);
> -static int read_int16(PGconn *conn);
> static char *read_bytes(int len, PGconn *conn);
> static void read_and_discard(PGconn *conn);
> static void read_it(PGconn *conn, char *buf, int len);
> @@ -251,19 +250,6 @@ read_int32(PGconn *conn)
> }
>
> /*
> - * Read a short integer from connection.
> - */
> -static int
> -read_int16(PGconn *conn)
> -{
> - short len;
> -
> - read_it(conn, (char *) &len, sizeof(len));
> -
> - return ntohs(len);
> -}
> -
> -/*
> * Read specified length of bytes from connection.
> * pg_malloc'ed buffer is returned.
> */
> diff --git a/src/tools/pgproto/send.c b/src/tools/pgproto/send.c
> index 77faad7..b090c0d 100644
> --- a/src/tools/pgproto/send.c
> +++ b/src/tools/pgproto/send.c
> @@ -34,9 +34,7 @@
> void
> send_char(char c, PGconn *conn)
> {
> - int status;
> -
> - status = write(PQsocket(conn), &c, 1);
> + write(PQsocket(conn), &c, 1);
> }
>
> /*
> @@ -45,10 +43,9 @@ send_char(char c, PGconn *conn)
> void
> send_int(int intval, PGconn *conn)
> {
> - int status;
> int l = htonl(intval);
>
> - status = write(PQsocket(conn), &l, sizeof(l));
> + write(PQsocket(conn), &l, sizeof(l));
> }
>
> /*
> @@ -57,10 +54,9 @@ send_int(int intval, PGconn *conn)
> void
> send_int16(short shortval, PGconn *conn)
> {
> - int status;
> short s = htons(shortval);
>
> - status = write(PQsocket(conn), &s, sizeof(s));
> + write(PQsocket(conn), &s, sizeof(s));
> }
>
> /*
> @@ -69,9 +65,7 @@ send_int16(short shortval, PGconn *conn)
> void
> send_string(char *buf, PGconn *conn)
> {
> - int status;
> -
> - status = write(PQsocket(conn), buf, strlen(buf) + 1);
> + write(PQsocket(conn), buf, strlen(buf) + 1);
> }
>
> /*
> @@ -80,7 +74,5 @@ send_string(char *buf, PGconn *conn)
> void
> send_byte(char *buf, int len, PGconn *conn)
> {
> - int status;
> -
> - status = write(PQsocket(conn), buf, len);
> + write(PQsocket(conn), buf, len);
> }
> diff --git a/src/watchdog/watchdog.c b/src/watchdog/watchdog.c
> index 724b449..8126754 100644
> --- a/src/watchdog/watchdog.c
> +++ b/src/watchdog/watchdog.c
> @@ -678,7 +678,7 @@ wd_cluster_initialize(void)
> struct utsname unameData;
>
> uname(&unameData);
> - snprintf(g_cluster.localNode->nodeName, WD_MAX_HOST_NAMELEN, "%s:%d %s %s",
> + snprintf(g_cluster.localNode->nodeName, sizeof(g_cluster.localNode->nodeName), "%s:%d %s %s",
> pool_config->wd_hostname,
> pool_config->port,
> unameData.sysname,
> diff --git a/src/watchdog/wd_json_data.c b/src/watchdog/wd_json_data.c
> index 734b12f..1f1ac7e 100644
> --- a/src/watchdog/wd_json_data.c
> +++ b/src/watchdog/wd_json_data.c
> @@ -796,7 +796,7 @@ parse_wd_node_function_json(char *json_data, int data_len, char **func_name, int
> }
> *func_name = pstrdup(ptr);
> /* If it is a node function ? */
> - if (json_get_int_value_for_key(root, "Flags", flags))
> + if (json_get_int_value_for_key(root, "Flags", (int *)flags))
> {
> /* node count not found, But we don't care much about this */
> *flags = 0;
More information about the pgpool-hackers
mailing list