Version: 0.18.1 (64-bit) on Windows 10.0.18362.418

Using the following config, bitcoind crashes.

This is not #15808 because the assignments are within the regtest section (see the comment on that issue).

Seems like it is #7496 reappearing.

```
[regtest]
rpcuser=user
rpcpassword=pass
rpcport=8332
server=1
zmqpubrawblock=127.0.0.1:40000
zmqpubrawtx=127.0.0.1:40000
```

```
PS C:\Program Files\Bitcoin\daemon> .\bitcoind -regtest -txindex
2019-10-18T07:05:41Z Bitcoin Core version v0.18.1 (release build)
2019-10-18T07:05:41Z Validating signatures for all blocks.
2019-10-18T07:05:41Z Setting nMinimumChainWork=0000000000000000000000000000000000000000000000000000000000000000
2019-10-18T07:05:41Z Using the 'sse4(1way),sse41(4way),avx2(8way)' SHA256 implementation
2019-10-18T07:05:41Z Using RdSeed as additional entropy source
2019-10-18T07:05:41Z Using RdRand as an additional entropy source
2019-10-18T07:05:41Z Default data directory C:\Users\janus\AppData\Roaming\Bitcoin
2019-10-18T07:05:41Z Using data directory C:\Users\janus\AppData\Roaming\Bitcoin\regtest
2019-10-18T07:05:41Z Config file: C:\Users\janus\AppData\Roaming\Bitcoin\bitcoin.conf
2019-10-18T07:05:41Z Using at most 125 automatic connections (2048 file descriptors available)
2019-10-18T07:05:41Z Using 16 MiB out of 32/2 requested for signature cache, able to store 524288 elements
2019-10-18T07:05:41Z Using 16 MiB out of 32/2 requested for script execution cache, able to store 524288 elements
2019-10-18T07:05:41Z Using 4 threads for script verification
2019-10-18T07:05:41Z scheduler thread start
2019-10-18T07:05:41Z libevent: getaddrinfo: nodename nor servname provided, or not known
2019-10-18T07:05:41Z Binding RPC on address ::1 port 8332 failed.
2019-10-18T07:05:41Z HTTP: creating work queue of depth 16
2019-10-18T07:05:41Z Config options rpcuser and rpcpassword will soon be deprecated. Locally-run instances may remove rpcuser to use cookie-based auth, or may be replaced with rpcauth. Please see share/rpcauth for rpcauth auth generation.
2019-10-18T07:05:41Z HTTP: starting 4 worker threads
2019-10-18T07:05:41Z Using wallet directory C:\Users\janus\AppData\Roaming\Bitcoin\regtest\wallets
2019-10-18T07:05:41Z init message: Verifying wallet(s)...
2019-10-18T07:05:41Z Using BerkeleyDB version Berkeley DB 4.8.30: (April  9, 2010)
2019-10-18T07:05:41Z Using wallet C:\Users\janus\AppData\Roaming\Bitcoin\regtest\wallets
2019-10-18T07:05:41Z BerkeleyEnvironment::Open: LogDir=C:\Users\janus\AppData\Roaming\Bitcoin\regtest\wallets\database ErrorFile=C:\Users\janus\AppData\Roaming\Bitcoin\regtest\wallets\db.log
2019-10-18T07:05:42Z init message: Loading banlist...
2019-10-18T07:05:42Z ERROR: DeserializeFileDB: Failed to open file C:\Users\janus\AppData\Roaming\Bitcoin\regtest\banlist.dat
2019-10-18T07:05:42Z Invalid or missing banlist.dat; recreating
Assertion failed!

Program: C:\Program Files\Bitcoin\daemon\bitcoind.exe
File: zmq/zmqpublishnotifier.cpp, Line 115

Expression: psocket
PS C:\Program Files\Bitcoin\daemon>
```
memcpy(buf, data, size);
        data = va_arg(args, const void*);
        rc = zmq_msg_send(&msg, sock, data ? ZMQ_SNDMORE : 0);
        if (rc == -1)
        {
            zmqError("Unable to send ZMQ msg");
            zmq_msg_close(&msg);
            va_end(args);
            return -1;
        }
        zmq_msg_close(&msg);
        if (!data)
            break;
        size = va_arg(args, size_t);
    }
    va_end(args);
    return 0;
}
bool CZMQAbstractPublishNotifier::Initialize(void *pcontext)
{
    assert(!psocket);
    
    std::multimap<std::string, CZMQAbstractPublishNotifier*>::iterator i = mapPublishNotifiers.find(address);
    if (i==mapPublishNotifiers.end())
    {
        psocket = zmq_socket(pcontext, ZMQ_PUB);
        if (!psocket)
        {
            zmqError("Failed to create socket");
            return false;