Changeset: c85befcc8fc8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c85befcc8fc8
Modified Files:
tools/merovingian/client/monetdb.c
tools/merovingian/daemon/client.c
tools/merovingian/daemon/connections.c
tools/merovingian/daemon/controlrunner.c
tools/merovingian/daemon/forkmserver.c
tools/merovingian/daemon/multiplex-funnel.c
tools/merovingian/daemon/proxy.c
tools/merovingian/utils/control.c
Branch: Nov2019
Log Message:
Coverity fixes.
diffs (200 lines):
diff --git a/tools/merovingian/client/monetdb.c
b/tools/merovingian/client/monetdb.c
--- a/tools/merovingian/client/monetdb.c
+++ b/tools/merovingian/client/monetdb.c
@@ -583,10 +583,10 @@ simple_argv_cmd(char *cmd, sabdb *dbs, c
if (premsg != NULL && !monetdb_quiet)
printf("FAILED\n");
fprintf(stderr, "%s: %s\n", cmd, out);
- free(out);
state |= 1;
}
+ free(out);
hadwork = 1;
}
diff --git a/tools/merovingian/daemon/client.c
b/tools/merovingian/daemon/client.c
--- a/tools/merovingian/daemon/client.c
+++ b/tools/merovingian/daemon/client.c
@@ -577,12 +577,14 @@ acceptConnections(int sock, int usock)
iov.iov_base = buf;
iov.iov_len = 1;
- msgh.msg_name = 0;
- msgh.msg_namelen = 0;
- msgh.msg_iov = &iov;
- msgh.msg_iovlen = 1;
- msgh.msg_control = ccmsg;
- msgh.msg_controllen = sizeof(ccmsg);
+ msgh = (struct msghdr) {
+ .msg_name = 0,
+ .msg_namelen = 0,
+ .msg_iov = &iov,
+ .msg_iovlen = 1,
+ .msg_control = ccmsg,
+ .msg_controllen = sizeof(ccmsg),
+ };
rv = recvmsg(msgsock, &msgh, 0);
if (rv == -1) {
diff --git a/tools/merovingian/daemon/connections.c
b/tools/merovingian/daemon/connections.c
--- a/tools/merovingian/daemon/connections.c
+++ b/tools/merovingian/daemon/connections.c
@@ -68,13 +68,11 @@ openConnectionTCP(int *ret, bool bind_ip
if (bind(sock, rp->ai_addr, rp->ai_addrlen) != -1)
break; /* working */
+ closesocket(sock);
}
if (rp == NULL) {
int e = errno;
- if (result)
- freeaddrinfo(result);
- if (sock != -1)
- closesocket(sock);
+ freeaddrinfo(result);
if (result) { /* results found, tried socket,
setsockopt and bind calls */
errno = e;
return newErr("binding to stream socket port
%hu failed: %s", port, strerror(errno));
@@ -84,6 +82,7 @@ openConnectionTCP(int *ret, bool bind_ip
}
server = rp->ai_addr;
length = rp->ai_addrlen;
+ freeaddrinfo(result);
} else {
sock = socket(bind_ipv6 ? AF_INET6 : AF_INET, SOCK_STREAM
#ifdef SOCK_CLOEXEC
diff --git a/tools/merovingian/daemon/controlrunner.c
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -367,6 +367,8 @@ static void ctl_handle_client(
* may have encountered.
*/
shutdown_profiler(dbname, &stats);
+ if (stats != NULL)
+
msab_freeStatus(&stats);
terminateProcess(pid,
dbname, type, 1);
Mfprintf(_mero_ctlout,
"%s: stopped "
"database '%s'\n", origin, q);
@@ -670,6 +672,8 @@ static void ctl_handle_client(
origin, log_path);
}
msab_freeStatus(&stats);
+ if (log_path)
+ free(log_path);
} else if (strncmp(p, "profilerstop",
strlen("profilerstop")) == 0) {
char *e = shutdown_profiler(q, &stats);
if (e != NULL) {
@@ -1057,9 +1061,11 @@ controlRunner(void *d)
#endif
if (retval == 0) {
/* nothing interesting has happened */
+ free(p);
continue;
}
if (retval == -1) {
+ free(p);
continue;
}
@@ -1068,11 +1074,13 @@ controlRunner(void *d)
continue;
#else
if (!FD_ISSET(usock, &fds)) {
+ free(p);
continue;
}
#endif
if ((msgsock = accept4(usock, (SOCKPTR) 0, (socklen_t *) 0,
SOCK_CLOEXEC)) == -1) {
+ free(p);
if (_mero_keep_listening == 0)
break;
if (errno != EINTR) {
@@ -1086,9 +1094,10 @@ controlRunner(void *d)
#endif
*p = msgsock;
- if (pthread_create(&tid, NULL, handle_client, p) != 0)
+ if (pthread_create(&tid, NULL, handle_client, p) != 0) {
closesocket(msgsock);
- else
+ free(p);
+ } else
pthread_detach(tid);
} while (_mero_keep_listening);
shutdown(usock, SHUT_RDWR);
diff --git a/tools/merovingian/daemon/forkmserver.c
b/tools/merovingian/daemon/forkmserver.c
--- a/tools/merovingian/daemon/forkmserver.c
+++ b/tools/merovingian/daemon/forkmserver.c
@@ -872,6 +872,7 @@ fork_profiler(char *dbname, sabdb **stat
struct stat path_info;
int error_code;
+ *log_path = NULL;
error = msab_getStatus(stats, dbname);
if (error != NULL) {
return error;
@@ -1227,6 +1228,7 @@ shutdown_profiler(char *dbname, sabdb **
cleanup:
freeConfFile(ckv);
+ free(ckv);
free(pidfilename);
return error;
}
diff --git a/tools/merovingian/daemon/multiplex-funnel.c
b/tools/merovingian/daemon/multiplex-funnel.c
--- a/tools/merovingian/daemon/multiplex-funnel.c
+++ b/tools/merovingian/daemon/multiplex-funnel.c
@@ -94,11 +94,12 @@ MFconnectionManager(void *d)
break;
}
/* coverity[string_null_argument] */
- if (read(mfpipe[0], &msg, sizeof(msg)) < 0) {
+ if ((i = (int) read(mfpipe[0], &msg, sizeof(msg))) < 0) {
Mfprintf(stderr, "failed reading from notification
pipe: %s\n",
strerror(errno));
break;
}
+ assert(i == (int) sizeof(msg));
/* we just received a POINTER to a string! */
/* intended behaviour:
diff --git a/tools/merovingian/daemon/proxy.c b/tools/merovingian/daemon/proxy.c
--- a/tools/merovingian/daemon/proxy.c
+++ b/tools/merovingian/daemon/proxy.c
@@ -107,9 +107,11 @@ startProxy(int psock, stream *cfdin, str
if ((t = strchr(port, '/')) != NULL)
*t = '\0';
} else {
+ free(conn);
return(newErr("can't find a port in
redirect: %s", url));
}
} else {
+ free(conn);
return(newErr("invalid IPv6 address in
redirect: %s", url));
}
} else if ((port = strchr(conn, ':')) != NULL) { /* drop
anything off after the hostname */
diff --git a/tools/merovingian/utils/control.c
b/tools/merovingian/utils/control.c
--- a/tools/merovingian/utils/control.c
+++ b/tools/merovingian/utils/control.c
@@ -111,6 +111,7 @@ char* control_send(
strerror(errno)
#endif
);
+ closesocket(sock);
return(strdup(sbuf));
}
#if !defined(SOCK_CLOEXEC) && defined(HAVE_FCNTL)
@@ -143,9 +144,8 @@ char* control_send(
fdin = block_stream(socket_rstream(sock, "client in"));
fdout = block_stream(socket_wstream(sock, "client
out"));
} else {
- if (len > 2 &&
- (strstr(rbuf + 2, ":BIG:") != NULL ||
- strstr(rbuf + 2, ":LIT:") != NULL))
+ if (strstr(rbuf + 2, ":BIG:") != NULL ||
+ strstr(rbuf + 2, ":LIT:") != NULL)
{
snprintf(sbuf, sizeof(sbuf), "cannot connect: "
"server looks like a mapi
server, "
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list