Skip to content

Commit

Permalink
Patch proposed by Marco to fix bareos-fd and bareos-sd -t segfault
Browse files Browse the repository at this point in the history
  • Loading branch information
sduehr committed Mar 6, 2015
1 parent c0b2f27 commit 2817856
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 21 deletions.
16 changes: 6 additions & 10 deletions src/dird/socket_server.c
Expand Up @@ -31,9 +31,8 @@
#include "dird.h"

/* Global variables */
static int started = FALSE;
static workq_t socket_workq;
static alist *sock_fds;
static alist *sock_fds = NULL;
static pthread_t tcp_server_tid;

struct s_addr_port {
Expand Down Expand Up @@ -117,19 +116,16 @@ void start_socket_server(dlist *addrs)
berrno be;
Emsg1(M_ABORT, 0, _("Cannot create UA thread: %s\n"), be.bstrerror(status));
}
started = TRUE;

return;
}

void stop_socket_server()
{
if (!started) {
return;
if (sock_fds) {
bnet_stop_thread_server_tcp(tcp_server_tid);
cleanup_bnet_thread_server_tcp(sock_fds, &socket_workq);
delete sock_fds;
sock_fds = NULL;
}

bnet_stop_thread_server_tcp(tcp_server_tid);
cleanup_bnet_thread_server_tcp(sock_fds, &socket_workq);
delete sock_fds;
sock_fds = NULL;
}
13 changes: 7 additions & 6 deletions src/filed/socket_server.c
Expand Up @@ -32,8 +32,8 @@

/* Global variables */
static workq_t socket_workq;
static alist *sock_fds;
static pthread_t tcp_server_tid;
static alist *sock_fds = NULL;

/*
* Connection request. We accept connections either from the Director or the Storage Daemon
Expand Down Expand Up @@ -107,9 +107,10 @@ void start_socket_server(dlist *addrs)

void stop_socket_server()
{
bnet_stop_thread_server_tcp(tcp_server_tid);
cleanup_bnet_thread_server_tcp(sock_fds, &socket_workq);
delete sock_fds;
sock_fds = NULL;

if (sock_fds) {
bnet_stop_thread_server_tcp(tcp_server_tid);
cleanup_bnet_thread_server_tcp(sock_fds, &socket_workq);
delete sock_fds;
sock_fds = NULL;
}
}
12 changes: 7 additions & 5 deletions src/stored/socket_server.c
Expand Up @@ -32,7 +32,7 @@

/* Global variables */
static workq_t socket_workq;
static alist *sock_fds;
static alist *sock_fds = NULL;
static pthread_t tcp_server_tid;

/*
Expand Down Expand Up @@ -123,8 +123,10 @@ void start_socket_server(dlist *addrs)

void stop_socket_server()
{
bnet_stop_thread_server_tcp(tcp_server_tid);
cleanup_bnet_thread_server_tcp(sock_fds, &socket_workq);
delete sock_fds;
sock_fds = NULL;
if (sock_fds) {
bnet_stop_thread_server_tcp(tcp_server_tid);
cleanup_bnet_thread_server_tcp(sock_fds, &socket_workq);
delete sock_fds;
sock_fds = NULL;
}
}

0 comments on commit 2817856

Please sign in to comment.