summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Herkenhoff <sherkenhoff@jp.adit-jv.com>2018-10-10 10:43:11 +0900
committerSaya Sugiura <ssugiura@jp.adit-jv.com>2019-05-06 15:55:07 +0900
commit40590be05c5eb99f557dfca6f7f6623dcdbe334a (patch)
tree8542563eacb18119b76f2264cc557ab6739031b8 /src
parentdf6fc2a1ce9f3a1778e9c8e14c800cd2ad96e96e (diff)
downloadDLT-daemon-40590be05c5eb99f557dfca6f7f6623dcdbe334a.tar.gz
Fix compiler warnings
Fix compiler warnings about socket usage Correct the data types used for the socket declaration. We use AF_UNIX sockets so we use struct sockaddr_un, but we need to cast to struct sockaddr for the socket API. Fix compiler warnings about sign-compare Fix two occurences of signed - unsigned comparison by casting the values accordingly. Note that the cast is legal as the first parts of both conditional statements make sure the value is not negative before casting to unsigned. While at it, add strtol error checking. Fix compiler warnings about string functions Add string.h to src/daemon/dlt_daemon_unix_socket.c, because it was unaware of memcpy and strerror. While at it, change unsafe use of sprintf to proper dlt_vlog and remove the char buffer. Fix compiler warnings about unused-* Fix two unused-variable and one unused-parameter warning. While at it, change the #ifdef to not run into an empty block. Simply reverse the condition and enclose the complete else with the #ifdef. POSIX: Use memset instead of bzero "The bzero() function is deprecated (marked as LEGACY in POSIX.1-2001); use memset(3) in new programs." Use memset instead of bzero and remove any occurrence from DLT. Include of header "strings.h" that has bzero is also removed. Signed-off-by: Simon Herkenhoff <sherkenhoff@jp.adit-jv.com> Signed-off-by: ManikandanC <Manikandan.Chockalingam@in.bosch.com> Signed-off-by: Christoph Lipka <clipka@jp.adit-jv.com>
Diffstat (limited to 'src')
-rw-r--r--src/adaptor/dlt-adaptor-udp.c3
-rw-r--r--src/console/dlt-passive-node-ctrl.c2
-rw-r--r--src/daemon/dlt-daemon.c27
-rw-r--r--src/daemon/dlt_daemon_unix_socket.c6
-rw-r--r--src/gateway/dlt_gateway.c15
-rw-r--r--src/lib/dlt_client.c6
-rw-r--r--src/system/dlt-system-journal.c1
-rw-r--r--src/system/dlt-system-syslog.c4
8 files changed, 33 insertions, 31 deletions
diff --git a/src/adaptor/dlt-adaptor-udp.c b/src/adaptor/dlt-adaptor-udp.c
index 05b33d2..ce6f5a7 100644
--- a/src/adaptor/dlt-adaptor-udp.c
+++ b/src/adaptor/dlt-adaptor-udp.c
@@ -212,8 +212,7 @@ int main(int argc, char *argv[])
#endif
server_addr.sin_port = htons(port);
server_addr.sin_addr.s_addr = INADDR_ANY;
- bzero(&(server_addr.sin_zero), 8);
-
+ memset(&(server_addr.sin_zero), 0, 8);
if (bind(sock, (struct sockaddr *)&server_addr,
sizeof(struct sockaddr)) == -1) {
perror("Bind");
diff --git a/src/console/dlt-passive-node-ctrl.c b/src/console/dlt-passive-node-ctrl.c
index 76ff789..c41129e 100644
--- a/src/console/dlt-passive-node-ctrl.c
+++ b/src/console/dlt-passive-node-ctrl.c
@@ -188,7 +188,7 @@ static int dlt_passive_node_analyze_response(char *answer,
if (get_command() == DLT_SERVICE_ID_PASSIVE_NODE_CONNECTION_STATUS) {
if ((int)sizeof(DltServicePassiveNodeConnectionInfo) > len) {
pr_error("Received payload is smaller than expected\n");
- pr_verbose("Expected: %lu,\nreceived: %d",
+ pr_verbose("Expected: %zu,\nreceived: %d",
sizeof(DltServicePassiveNodeConnectionInfo),
len);
ret = -1;
diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c
index a8404fd..cdfddec 100644
--- a/src/daemon/dlt-daemon.c
+++ b/src/daemon/dlt-daemon.c
@@ -1525,7 +1525,7 @@ int dlt_daemon_process_client_connect(DltDaemon *daemon,
int verbose)
{
socklen_t cli_size;
- struct sockaddr cli;
+ struct sockaddr_un cli;
int in_sock = -1;
char local_str[DLT_DAEMON_TEXTBUFSIZE] = { '\0' };
@@ -1542,7 +1542,7 @@ int dlt_daemon_process_client_connect(DltDaemon *daemon,
/* event from TCP server socket, new connection */
cli_size = sizeof(cli);
- if ((in_sock = accept(receiver->fd, &cli, &cli_size)) < 0) {
+ if ((in_sock = accept(receiver->fd, (struct sockaddr *)&cli, &cli_size)) < 0) {
dlt_vlog(LOG_ERR, "accept() for socket %d failed: %s\n", receiver->fd, strerror(errno));
return -1;
}
@@ -1794,7 +1794,7 @@ int dlt_daemon_process_control_connect(
/* event from UNIX server socket, new connection */
ctrl_size = sizeof(ctrl);
- if ((in_sock = accept(receiver->fd, &ctrl, &ctrl_size)) < 0) {
+ if ((in_sock = accept(receiver->fd, (struct sockaddr *)&ctrl, &ctrl_size)) < 0) {
dlt_vlog(LOG_ERR, "accept() on UNIX control socket %d failed: %s\n", receiver->fd, strerror(errno));
return -1;
}
@@ -1847,7 +1847,7 @@ int dlt_daemon_process_app_connect(
/* event from UNIX server socket, new connection */
app_size = sizeof(app);
- if ((in_sock = accept(receiver->fd, &app, &app_size)) < 0) {
+ if ((in_sock = accept(receiver->fd, (struct sockaddr *)&app, &app_size)) < 0) {
dlt_vlog(LOG_ERR, "accept() on UNIX socket %d failed: %s\n", receiver->fd, strerror(errno));
return -1;
}
@@ -3130,7 +3130,6 @@ int create_timer_fd(DltDaemonLocal *daemon_local,
DltTimers timer_id)
{
int local_fd = -1;
- struct itimerspec l_timer_spec;
char *timer_name = NULL;
if (timer_id >= DLT_TIMER_UNKNOWN) {
@@ -3145,8 +3144,15 @@ int create_timer_fd(DltDaemonLocal *daemon_local,
return -1;
}
- if (period_sec > 0) {
+ if (period_sec <= 0 || starts_in <= 0 ) {
+ /* timer not activated via the service file */
+ dlt_vlog(LOG_INFO, "<%s> not set: period=0\n", timer_name);
+ local_fd = -1;
+ }
#ifdef linux
+ else
+ {
+ struct itimerspec l_timer_spec;
local_fd = timerfd_create(CLOCK_MONOTONIC, 0);
if (local_fd < 0) {
@@ -3172,15 +3178,8 @@ int create_timer_fd(DltDaemonLocal *daemon_local,
dlt_log(LOG_WARNING, str);
local_fd = -1;
}
-
-#endif
- }
- else {
- /* timer not activated via the service file */
- snprintf(str, sizeof(str), "<%s> not set: period=0\n", timer_name);
- dlt_log(LOG_INFO, str);
- local_fd = -1;
}
+#endif
/* If fully initialized we are done.
* Event handling registration is done later on with other connections.
diff --git a/src/daemon/dlt_daemon_unix_socket.c b/src/daemon/dlt_daemon_unix_socket.c
index 743035a..e5c5faa 100644
--- a/src/daemon/dlt_daemon_unix_socket.c
+++ b/src/daemon/dlt_daemon_unix_socket.c
@@ -28,6 +28,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <sys/un.h>
#include <sys/socket.h>
#include <sys/types.h>
@@ -40,8 +41,6 @@
#include "dlt_daemon_socket.h"
#include "dlt_daemon_unix_socket.h"
-char err_string[DLT_DAEMON_TEXTBUFSIZE];
-
int dlt_daemon_unix_socket_open(int *sock, char *sock_path, int type, int mask)
{
struct sockaddr_un addr;
@@ -87,8 +86,7 @@ int dlt_daemon_unix_socket_close(int sock)
int ret = close(sock);
if (ret != 0) {
- sprintf(err_string, "unix socket close failed: %s", strerror(errno));
- dlt_log(LOG_WARNING, err_string);
+ dlt_vlog(LOG_WARNING, "unix socket close failed: %s", strerror(errno));
}
return ret;
diff --git a/src/gateway/dlt_gateway.c b/src/gateway/dlt_gateway.c
index 6b7a629..1dde171 100644
--- a/src/gateway/dlt_gateway.c
+++ b/src/gateway/dlt_gateway.c
@@ -96,18 +96,25 @@ DLT_STATIC DltReturnValue dlt_gateway_check_ip(DltGatewayConnection *con, char *
DLT_STATIC DltReturnValue dlt_gateway_check_port(DltGatewayConnection *con,
char *value)
{
- int tmp = -1;
+ long int tmp = -1;
if ((con == NULL) || (value == NULL)) {
dlt_vlog(LOG_ERR, "%s: wrong parameter\n", __func__);
return DLT_RETURN_WRONG_PARAMETER;
}
- tmp = (int)strtol(value, NULL, 10);
+ errno = 0;
+ tmp = strtol(value, NULL, 10);
+ if ((errno == ERANGE && (tmp == LONG_MAX || tmp == LONG_MIN))
+ || (errno != 0 && tmp == 0)) {
+ dlt_vlog(LOG_ERR, "%s: cannot convert port number\n", __func__);
+ return DLT_RETURN_ERROR;
+ }
/* port ranges for unprivileged applications */
- if ((tmp > IPPORT_RESERVED) && (tmp <= USHRT_MAX)) {
- con->port = tmp;
+ if ((tmp > IPPORT_RESERVED) && ((unsigned)tmp <= USHRT_MAX))
+ {
+ con->port = (int)tmp;
return DLT_RETURN_OK;
}
else {
diff --git a/src/lib/dlt_client.c b/src/lib/dlt_client.c
index 745aa4f..a0975b4 100644
--- a/src/lib/dlt_client.c
+++ b/src/lib/dlt_client.c
@@ -140,14 +140,14 @@ DltReturnValue dlt_client_init(DltClient *client, int verbose)
if (env_daemon_port != NULL) {
tmp_port = atoi(env_daemon_port);
- if ((tmp_port < IPPORT_RESERVED) || (tmp_port > USHRT_MAX)) {
+ if ((tmp_port < IPPORT_RESERVED) || ((unsigned)tmp_port > USHRT_MAX)) {
dlt_vlog(LOG_ERR,
"Specified port is out of possible range: %d.\n",
tmp_port);
return DLT_RETURN_ERROR;
}
else {
- servPort = tmp_port;
+ servPort = (unsigned short)tmp_port;
}
}
@@ -260,7 +260,7 @@ DltReturnValue dlt_client_connect(DltClient *client, int verbose)
memcpy(addr.sun_path, client->socketPath, sizeof(addr.sun_path) - 1);
if (connect(client->sock,
- (struct sockaddr_un *)&addr,
+ (struct sockaddr *) &addr,
sizeof(addr)) == -1) {
fprintf(stderr, "ERROR: (unix) connect error: %s\n", strerror(errno));
return DLT_RETURN_ERROR;
diff --git a/src/system/dlt-system-journal.c b/src/system/dlt-system-journal.c
index 32c6e13..055fbe6 100644
--- a/src/system/dlt-system-journal.c
+++ b/src/system/dlt-system-journal.c
@@ -49,7 +49,6 @@
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
-#include <strings.h>
#include <errno.h>
#include <stdlib.h>
diff --git a/src/system/dlt-system-syslog.c b/src/system/dlt-system-syslog.c
index 8fe9802..3de06fd 100644
--- a/src/system/dlt-system-syslog.c
+++ b/src/system/dlt-system-syslog.c
@@ -50,7 +50,7 @@
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
-#include <strings.h>
+#include <string.h>
#include <errno.h>
#include "dlt-system.h"
@@ -89,7 +89,7 @@ int init_socket(SyslogOptions opts)
#endif
syslog_addr.sin_port = htons(opts.Port);
syslog_addr.sin_addr.s_addr = INADDR_ANY;
- bzero(&(syslog_addr.sin_zero), 8);
+ memset(&(syslog_addr.sin_zero), 0, 8);
if (bind(sock, (struct sockaddr *)&syslog_addr,
sizeof(struct sockaddr)) == -1) {