diff --git a/src/conn.c b/src/conn.c index ae121bde6..e9938d17b 100644 --- a/src/conn.c +++ b/src/conn.c @@ -580,7 +580,7 @@ _processInfo(natsConnection *nc, char *info, int len) tlsName = (const char*) nc->cur->url->host; s = natsSrvPool_addNewURLs(nc->srvPool, - nc->cur->url, + nc->cur ? nc->cur->url : NULL, nc->info.connectURLs, nc->info.connectURLsCount, tlsName, @@ -3352,7 +3352,8 @@ _processUrlString(natsOptions *opts, const char *urls) serverUrls = (char**) NATS_CALLOC(count + 1, sizeof(char*)); if (serverUrls == NULL) - s = NATS_NO_MEMORY; + return NATS_NO_MEMORY; + if (s == NATS_OK) { urlsCopy = NATS_STRDUP(urls); diff --git a/src/js.c b/src/js.c index defe4296f..65288f8ae 100644 --- a/src/js.c +++ b/src/js.c @@ -3454,8 +3454,10 @@ _recreateOrderedCons(void *closure) NATS_FREE(oci->ndlv); NATS_FREE(oci); - natsThread_Detach(t); - natsThread_Destroy(t); + if (t != NULL) { + natsThread_Detach(t); + natsThread_Destroy(t); + } natsSub_release(sub); } diff --git a/src/sub.c b/src/sub.c index 851577426..22d570c7b 100644 --- a/src/sub.c +++ b/src/sub.c @@ -656,10 +656,13 @@ natsSub_nextMsg(natsMsg **nextMsg, natsSubscription *sub, int64_t timeout, bool if (s == NATS_OK) { msg = sub->ownDispatcher.queue.head; - if ((msg == NULL) && sub->draining) + if (msg == NULL) { - removeSub = true; - s = NATS_TIMEOUT; + if (sub->draining) + { + removeSub = true; + s = NATS_TIMEOUT; + } } else {