Merged, thanks! Jérémie On Tue, May 17, 2016 at 11:46 AM, Mathieu Desnoyers wrote: > Dereference after NULL check in consumer discarded events/lost packets > commands. > > Found by Coverity: > > CID 1040158 (#1 of 2): Dereference after null check (FORWARD_NULL)24. > var_deref_op: Dereferencing null pointer channel. > > CID 1040158 (#2 of 2): Dereference after null check (FORWARD_NULL)24. > var_deref_op: Dereferencing null pointer channel. > > Signed-off-by: Mathieu Desnoyers > --- > src/common/kernel-consumer/kernel-consumer.c | 24 ++++++++++++------------ > 1 file changed, 12 insertions(+), 12 deletions(-) > > diff --git a/src/common/kernel-consumer/kernel-consumer.c b/src/common/kernel-consumer/kernel-consumer.c > index 9e35404..3216903 100644 > --- a/src/common/kernel-consumer/kernel-consumer.c > +++ b/src/common/kernel-consumer/kernel-consumer.c > @@ -969,18 +969,18 @@ int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx, > uint64_t id = msg.u.discarded_events.session_id; > uint64_t key = msg.u.discarded_events.channel_key; > > + DBG("Kernel consumer discarded events command for session id %" > + PRIu64 ", channel key %" PRIu64, id, key); > + > channel = consumer_find_channel(key); > if (!channel) { > ERR("Kernel consumer discarded events channel %" > PRIu64 " not found", key); > - ret_code = LTTCOMM_CONSUMERD_CHAN_NOT_FOUND; > + ret = 0; > + } else { > + ret = channel->discarded_events; > } > > - DBG("Kernel consumer discarded events command for session id %" > - PRIu64 ", channel key %" PRIu64, id, key); > - > - ret = channel->discarded_events; > - > health_code_update(); > > /* Send back returned value to session daemon */ > @@ -999,18 +999,18 @@ int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx, > uint64_t id = msg.u.lost_packets.session_id; > uint64_t key = msg.u.lost_packets.channel_key; > > + DBG("Kernel consumer lost packets command for session id %" > + PRIu64 ", channel key %" PRIu64, id, key); > + > channel = consumer_find_channel(key); > if (!channel) { > ERR("Kernel consumer lost packets channel %" > PRIu64 " not found", key); > - ret_code = LTTCOMM_CONSUMERD_CHAN_NOT_FOUND; > + ret = 0; > + } else { > + ret = channel->lost_packets; > } > > - DBG("Kernel consumer lost packets command for session id %" > - PRIu64 ", channel key %" PRIu64, id, key); > - > - ret = channel->lost_packets; > - > health_code_update(); > > /* Send back returned value to session daemon */ > -- > 2.1.4 > -- Jérémie Galarneau EfficiOS Inc. http://www.efficios.com