diff options
Diffstat (limited to 'src/protocol')
| -rw-r--r-- | src/protocol/pubsub/sub.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/protocol/pubsub/sub.c b/src/protocol/pubsub/sub.c index 4908466f..6cd22712 100644 --- a/src/protocol/pubsub/sub.c +++ b/src/protocol/pubsub/sub.c @@ -173,6 +173,7 @@ nni_sub_subscribe(nni_sub_sock *sub, const void *buf, size_t sz) NNI_LIST_FOREACH (&sub->topics, topic) { int rv; + if (topic->len >= sz) { rv = memcmp(topic->buf, buf, sz); } else { @@ -201,6 +202,8 @@ nni_sub_subscribe(nni_sub_sock *sub, const void *buf, size_t sz) newtopic->len = sz; if (topic != NULL) { nni_list_insert_before(&sub->topics, newtopic, topic); + } else { + nni_list_append(&sub->topics, newtopic); } return (0); } |
