aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ares/ares__get_hostent.c9
-rw-r--r--ares/ares__read_line.c4
-rw-r--r--ares/ares_init.c2
-rw-r--r--ares/ares_private.h2
-rw-r--r--ares/ares_search.c3
5 files changed, 11 insertions, 9 deletions
diff --git a/ares/ares__get_hostent.c b/ares/ares__get_hostent.c
index 4371c5bf7..0d4aee215 100644
--- a/ares/ares__get_hostent.c
+++ b/ares/ares__get_hostent.c
@@ -38,10 +38,10 @@ int ares__get_hostent(FILE *fp, int family, struct hostent **host)
{
char *line = NULL, *p, *q, **alias;
char *txtaddr, *txthost, *txtalias;
- int status, linesize, addrfam, naliases;
+ int status, addrfam;
+ size_t addrlen, linesize, naliases;
struct in_addr addr;
struct in6_addr addr6;
- size_t addrlen;
struct hostent *hostent = NULL;
*host = NULL; /* Assume failure */
@@ -194,12 +194,13 @@ int ares__get_hostent(FILE *fp, int family, struct hostent **host)
memcpy(hostent->h_addr_list[0], &addr6, sizeof(struct in6_addr));
/* Copy aliases. */
- hostent->h_aliases = malloc((((size_t)naliases) + 1) * sizeof(char *));
+ hostent->h_aliases = malloc((naliases + 1) * sizeof(char *));
if (!hostent->h_aliases)
break;
alias = hostent->h_aliases;
- while (naliases >= 0)
+ while (naliases)
*(alias + naliases--) = NULL;
+ *alias = NULL;
while (txtalias)
{
p = txtalias;
diff --git a/ares/ares__read_line.c b/ares/ares__read_line.c
index bdb314c5c..a4399e3c3 100644
--- a/ares/ares__read_line.c
+++ b/ares/ares__read_line.c
@@ -30,7 +30,7 @@
* appropriate. The initial value of *buf should be NULL. After the
* calling routine is done reading lines, it should free *buf.
*/
-int ares__read_line(FILE *fp, char **buf, int *bufsize)
+int ares__read_line(FILE *fp, char **buf, size_t *bufsize)
{
char *newbuf;
size_t offset = 0;
@@ -46,7 +46,7 @@ int ares__read_line(FILE *fp, char **buf, int *bufsize)
while (1)
{
- if (!fgets(*buf + offset, *bufsize - (int)offset, fp))
+ if (!fgets(*buf + offset, *bufsize - offset, fp))
return (offset != 0) ? 0 : (ferror(fp)) ? ARES_EFILE : ARES_EOF;
len = offset + strlen(*buf + offset);
if ((*buf)[len - 1] == '\n')
diff --git a/ares/ares_init.c b/ares/ares_init.c
index bc7e97ad6..e9cf9dbc5 100644
--- a/ares/ares_init.c
+++ b/ares/ares_init.c
@@ -809,7 +809,7 @@ DhcpNameServer
{
char *p;
FILE *fp;
- int linesize;
+ size_t linesize;
int error;
/* Don't read resolv.conf and friends if we don't have to */
diff --git a/ares/ares_private.h b/ares/ares_private.h
index e70bdb5c0..036062dcd 100644
--- a/ares/ares_private.h
+++ b/ares/ares_private.h
@@ -312,7 +312,7 @@ void ares__send_query(ares_channel channel, struct query *query,
struct timeval *now);
void ares__close_sockets(ares_channel channel, struct server_state *server);
int ares__get_hostent(FILE *fp, int family, struct hostent **host);
-int ares__read_line(FILE *fp, char **buf, int *bufsize);
+int ares__read_line(FILE *fp, char **buf, size_t *bufsize);
void ares__free_query(struct query *query);
unsigned short ares__generate_new_id(rc4_key* key);
struct timeval ares__tvnow(void);
diff --git a/ares/ares_search.c b/ares/ares_search.c
index 38d689c00..9ab48e0e1 100644
--- a/ares/ares_search.c
+++ b/ares/ares_search.c
@@ -238,7 +238,8 @@ static int single_domain(ares_channel channel, const char *name, char **s)
const char *hostaliases;
FILE *fp;
char *line = NULL;
- int linesize, status;
+ int status;
+ size_t linesize;
const char *p, *q;
int error;