summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rpc/rpc-lib/src/rpcsvc.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/rpc/rpc-lib/src/rpcsvc.c b/rpc/rpc-lib/src/rpcsvc.c
index 2c7a3be8307..01847e6c5ad 100644
--- a/rpc/rpc-lib/src/rpcsvc.c
+++ b/rpc/rpc-lib/src/rpcsvc.c
@@ -458,7 +458,7 @@ rpcsvc_request_create (rpcsvc_t *svc, rpc_transport_t *trans,
size_t msglen = 0;
int ret = -1;
- if (!svc || !trans)
+ if (!svc || !trans || !svc->rxpool)
return NULL;
/* We need to allocate the request before actually calling
@@ -1585,6 +1585,7 @@ rpcsvc_get_listener (rpcsvc_t *svc, uint16_t port, rpc_transport_t *trans)
{
rpcsvc_listener_t *listener = NULL;
char found = 0;
+ rpcsvc_listener_t *next = NULL;
uint32_t listener_port = 0;
if (!svc) {
@@ -1593,7 +1594,7 @@ rpcsvc_get_listener (rpcsvc_t *svc, uint16_t port, rpc_transport_t *trans)
pthread_rwlock_rdlock (&svc->rpclock);
{
- list_for_each_entry (listener, &svc->listeners, list) {
+ list_for_each_entry_safe (listener, next, &svc->listeners, list) {
if (trans != NULL) {
if (listener->trans == trans) {
found = 1;