Skip to content

Commit 04e5324

Browse files
committed
Fix possible null pointer access
1 parent 30d3c25 commit 04e5324

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

lib/ClientImpl.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,9 @@ void ClientImpl::handleProducerCreated(Result result, ProducerImplBaseWeakPtr pr
225225
auto address = producer.get();
226226
auto existingProducer = producers_.create(address, producer);
227227
if (existingProducer) {
228+
auto producer = existingProducer.value().lock();
228229
LOG_ERROR("Unexpected existing producer at the same address: "
229-
<< address << ", producer: " << existingProducer.value().lock()->getProducerName());
230+
<< address << ", producer: " << (producer ? producer->getProducerName() : "(null)"));
230231
callback(ResultUnknownError, {});
231232
return;
232233
}
@@ -313,8 +314,9 @@ void ClientImpl::handleReaderMetadataLookup(const Result result, const LookupDat
313314
auto address = consumer.get();
314315
auto existingConsumer = consumers_.create(address, consumer);
315316
if (existingConsumer) {
317+
consumer = existingConsumer.value().lock();
316318
LOG_ERROR("Unexpected existing consumer at the same address: "
317-
<< address << ", consumer: " << existingConsumer.value().lock()->getName());
319+
<< address << ", consumer: " << (consumer ? consumer->getName() : "(null)"));
318320
}
319321
} else {
320322
LOG_ERROR("Unexpected case: the consumer is somehow expired");
@@ -513,8 +515,9 @@ void ClientImpl::handleConsumerCreated(Result result, ConsumerImplBaseWeakPtr co
513515
auto address = consumer.get();
514516
auto existingConsumer = consumers_.create(address, consumer);
515517
if (existingConsumer) {
518+
auto consumer = existingConsumer.value().lock();
516519
LOG_ERROR("Unexpected existing consumer at the same address: "
517-
<< address << ", consumer: " << existingConsumer.value().lock()->getName());
520+
<< address << ", consumer: " << (consumer ? consumer->getName() : "(null)"));
518521
callback(ResultUnknownError, {});
519522
return;
520523
}

0 commit comments

Comments
 (0)