SonarCloud: fix up codesmells

pull/595/head
Brad House 1 year ago
parent c8bd83a4ca
commit 699f469f18
  1. 22
      src/lib/ares__socket.c
  2. 2
      src/lib/ares_getaddrinfo.c
  3. 10
      src/lib/ares_getnameinfo.c
  4. 2
      src/lib/ares_init.c
  5. 25
      src/lib/ares_options.c
  6. 4
      src/lib/ares_query.c
  7. 4
      src/lib/ares_search.c
  8. 2
      src/lib/ares_sysconfig_files.c
  9. 2
      src/lib/ares_timeout.c
  10. 31
      src/lib/ares_update_servers.c

@ -197,12 +197,11 @@ static int configure_socket(ares_socket_t s, int family, ares_channel channel)
}
#ifdef SO_BINDTODEVICE
if (channel->local_dev_name[0]) {
if (setsockopt(s, SOL_SOCKET, SO_BINDTODEVICE, channel->local_dev_name,
sizeof(channel->local_dev_name))) {
/* Only root can do this, and usually not fatal if it doesn't work, so */
/* just continue on. */
}
if (channel->local_dev_name[0] &&
setsockopt(s, SOL_SOCKET, SO_BINDTODEVICE, channel->local_dev_name,
sizeof(channel->local_dev_name))) {
/* Only root can do this, and usually not fatal if it doesn't work, so */
/* just continue on. */
}
#endif
@ -293,12 +292,11 @@ ares_status_t ares__open_connection(ares_channel channel,
* so batching isn't very interesting.
*/
opt = 1;
if (!channel->sock_funcs || !channel->sock_funcs->asocket) {
if (setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (void *)&opt, sizeof(opt)) ==
if ((!channel->sock_funcs || !channel->sock_funcs->asocket) &&
setsockopt(s, IPPROTO_TCP, TCP_NODELAY, (void *)&opt, sizeof(opt)) ==
-1) {
ares__close_socket(channel, s);
return ARES_ECONNREFUSED;
}
ares__close_socket(channel, s);
return ARES_ECONNREFUSED;
}
}
#endif
@ -423,7 +421,7 @@ ares_ssize_t ares__socket_write(ares_channel channel, ares_socket_t s,
{
if (channel->sock_funcs && channel->sock_funcs->asendv) {
struct iovec vec;
vec.iov_base = (void *)data;
vec.iov_base = (void *)((size_t)data); /* Cast off const */
vec.iov_len = len;
return channel->sock_funcs->asendv(s, &vec, 1, channel->sock_func_cb_data);
}

@ -451,7 +451,7 @@ static void next_lookup(struct host_query *hquery, ares_status_t status)
}
}
static void terminate_retries(struct host_query *hquery, unsigned short qid)
static void terminate_retries(const struct host_query *hquery, unsigned short qid)
{
unsigned short term_qid =
(qid == hquery->qid_a) ? hquery->qid_aaaa : hquery->qid_a;

@ -90,11 +90,11 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
ares_socklen_t salen, int flags_int,
ares_nameinfo_callback callback, void *arg)
{
const struct sockaddr_in *addr = NULL;
struct sockaddr_in6 *addr6 = NULL;
struct nameinfo_query *niquery;
unsigned short port = 0;
unsigned int flags = (unsigned int)flags_int;
const struct sockaddr_in *addr = NULL;
const struct sockaddr_in6 *addr6 = NULL;
struct nameinfo_query *niquery;
unsigned short port = 0;
unsigned int flags = (unsigned int)flags_int;
/* Validate socket address family and length */
if ((sa->sa_family == AF_INET) && (salen == sizeof(struct sockaddr_in))) {

@ -126,7 +126,7 @@ static ares_status_t init_by_defaults(ares_channel channel)
char *hostname = NULL;
ares_status_t rc = ARES_SUCCESS;
#ifdef HAVE_GETHOSTNAME
char *dot;
const char *dot;
#endif
if (channel->timeout == 0) {

@ -68,7 +68,7 @@ static struct in_addr *ares_save_opt_servers(ares_channel channel,
for (snode = ares__slist_node_first(channel->servers); snode != NULL;
snode = ares__slist_node_next(snode)) {
struct server_state *server = ares__slist_node_val(snode);
const struct server_state *server = ares__slist_node_val(snode);
if (server->addr.family != AF_INET)
continue;
@ -316,21 +316,18 @@ ares_status_t ares__init_by_options(ares_channel channel,
/* Copy the domains, if given. Keep channel->ndomains consistent so
* we can clean up in case of error.
*/
if (optmask & ARES_OPT_DOMAINS) {
/* Avoid zero size allocations at any cost */
if (options->ndomains > 0) {
channel->domains =
ares_malloc_zero((size_t)options->ndomains * sizeof(char *));
if (!channel->domains) {
if (optmask & ARES_OPT_DOMAINS && options->ndomains > 0) {
channel->domains =
ares_malloc_zero((size_t)options->ndomains * sizeof(char *));
if (!channel->domains) {
return ARES_ENOMEM;
}
channel->ndomains = (size_t)options->ndomains;
for (i = 0; i < (size_t)options->ndomains; i++) {
channel->domains[i] = ares_strdup(options->domains[i]);
if (!channel->domains[i]) {
return ARES_ENOMEM;
}
channel->ndomains = (size_t)options->ndomains;
for (i = 0; i < (size_t)options->ndomains; i++) {
channel->domains[i] = ares_strdup(options->domains[i]);
if (!channel->domains[i]) {
return ARES_ENOMEM;
}
}
}
}

@ -58,7 +58,7 @@ static unsigned short generate_unique_id(ares_channel channel)
id = ares__generate_new_id(channel->rand_state);
} while (ares__htable_szvp_get(channel->queries_by_qid, id, NULL));
return (unsigned short)id;
return id;
}
ares_status_t ares_query_qid(ares_channel channel, const char *name,
@ -146,6 +146,8 @@ static void qcallback(void *arg, int status, int timeouts, unsigned char *abuf,
case REFUSED:
status = ARES_EREFUSED;
break;
default:
break;
}
qquery->callback(qquery->arg, status, timeouts, abuf, alen);
}

@ -119,7 +119,7 @@ void ares_search(ares_channel channel, const char *name, int dnsclass, int type,
* then we try the name as-is first. Otherwise, we try the name
* as-is last.
*/
if (ndots >= (size_t)channel->ndots) {
if (ndots >= channel->ndots) {
/* Try the name as-is first. */
squery->next_domain = 0;
squery->trying_as_is = ARES_TRUE;
@ -171,7 +171,7 @@ static void search_callback(void *arg, int status, int timeouts,
squery->ever_got_nodata = ARES_TRUE;
}
if (squery->next_domain < (size_t)channel->ndomains) {
if (squery->next_domain < channel->ndomains) {
ares_status_t mystatus;
/* Try the next domain. */
mystatus = ares__cat_domain(squery->name,

@ -103,7 +103,7 @@ static void natural_mask(struct apattern *pat)
}
static ares_bool_t sortlist_alloc(struct apattern **sortlist, size_t *nsort,
struct apattern *pat)
const struct apattern *pat)
{
struct apattern *newsort;
newsort = ares_realloc(*sortlist, (*nsort + 1) * sizeof(struct apattern));

@ -35,7 +35,7 @@
#include "ares_private.h"
/* return time offset between now and (future) check, in milliseconds */
static long timeoffset(struct timeval *now, struct timeval *check)
static long timeoffset(const struct timeval *now, const struct timeval *check)
{
return (check->tv_sec - now->tv_sec) * 1000 +
(check->tv_usec - now->tv_usec) / 1000;

@ -61,7 +61,8 @@ static ares_bool_t ares__addr_match(const struct ares_addr *addr1,
}
if (addr1->family == AF_INET6 &&
memcmp(&addr1->addr.addr6, &addr2->addr.addr6, sizeof(addr1->addr.addr6))
memcmp(&addr1->addr.addr6._S6_un._S6_u8, &addr2->addr.addr6._S6_un._S6_u8,
sizeof(addr1->addr.addr6._S6_un._S6_u8))
== 0) {
return ARES_TRUE;
}
@ -363,7 +364,7 @@ static ares__slist_node_t *ares__server_find(ares_channel channel,
for (node = ares__slist_node_first(channel->servers); node != NULL;
node = ares__slist_node_next(node)) {
struct server_state *server = ares__slist_node_val(node);
const struct server_state *server = ares__slist_node_val(node);
if (!ares__addr_match(&server->addr, &s->addr))
continue;
@ -384,12 +385,12 @@ static ares_bool_t ares__server_isdup(ares_channel channel,
{
/* Scan backwards to see if this is a duplicate */
ares__llist_node_t *prev;
ares_sconfig_t *server = ares__llist_node_val(s);
const ares_sconfig_t *server = ares__llist_node_val(s);
for (prev = ares__llist_node_prev(s); prev != NULL;
prev = ares__llist_node_prev(prev)) {
ares_sconfig_t *p = ares__llist_node_val(prev);
const ares_sconfig_t *p = ares__llist_node_val(prev);
if (!ares__addr_match(&server->addr, &p->addr))
continue;
@ -474,7 +475,7 @@ static ares_bool_t ares__server_in_newconfig(struct server_state *server,
for (node = ares__llist_node_first(srvlist); node != NULL;
node = ares__llist_node_next(node)) {
ares_sconfig_t *s = ares__llist_node_val(node);
const ares_sconfig_t *s = ares__llist_node_val(node);
if (!ares__addr_match(&server->addr, &s->addr))
continue;
@ -534,7 +535,7 @@ ares_status_t ares__servers_update(ares_channel channel,
for (node = ares__llist_node_first(server_list); node != NULL;
node = ares__llist_node_next(node)) {
ares_sconfig_t *sconfig = ares__llist_node_val(node);
const ares_sconfig_t *sconfig = ares__llist_node_val(node);
ares__slist_node_t *snode;
/* Don't add duplicate servers! */
@ -727,7 +728,7 @@ int ares_get_servers(ares_channel channel, struct ares_addr_node **servers)
for (node = ares__slist_node_first(channel->servers); node != NULL;
node = ares__slist_node_next(node)) {
struct server_state *server = ares__slist_node_val(node);
const struct server_state *server = ares__slist_node_val(node);
/* Allocate storage for this server node appending it to the list */
srvr_curr = ares_malloc_data(ARES_DATATYPE_ADDR_NODE);
@ -754,10 +755,8 @@ int ares_get_servers(ares_channel channel, struct ares_addr_node **servers)
}
if (status != ARES_SUCCESS) {
if (srvr_head) {
ares_free_data(srvr_head);
srvr_head = NULL;
}
ares_free_data(srvr_head);
srvr_head = NULL;
}
*servers = srvr_head;
@ -780,7 +779,7 @@ int ares_get_servers_ports(ares_channel channel,
for (node = ares__slist_node_first(channel->servers); node != NULL;
node = ares__slist_node_next(node)) {
struct server_state *server = ares__slist_node_val(node);
const struct server_state *server = ares__slist_node_val(node);
/* Allocate storage for this server node appending it to the list */
srvr_curr = ares_malloc_data(ARES_DATATYPE_ADDR_PORT_NODE);
@ -810,10 +809,8 @@ int ares_get_servers_ports(ares_channel channel,
}
if (status != ARES_SUCCESS) {
if (srvr_head) {
ares_free_data(srvr_head);
srvr_head = NULL;
}
ares_free_data(srvr_head);
srvr_head = NULL;
}
*servers = srvr_head;
@ -875,7 +872,7 @@ static ares_status_t set_servers_csv(ares_channel channel, const char *_csv,
size_t i;
char *csv = NULL;
char *ptr;
char *start_host;
const char *start_host;
int cc = 0;
ares_status_t status = ARES_SUCCESS;
struct ares_addr_port_node *servers = NULL;

Loading…
Cancel
Save