{
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 */
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;
* 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;
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')
{
char *p;
FILE *fp;
- int linesize;
+ size_t linesize;
int error;
/* Don't read resolv.conf and friends if we don't have to */
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);
const char *hostaliases;
FILE *fp;
char *line = NULL;
- int linesize, status;
+ int status;
+ size_t linesize;
const char *p, *q;
int error;