From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers)
Subject: [lttng-dev] UST check pointer/de-reference order
Date: Tue, 5 Jun 2012 11:19:05 -0400 [thread overview]
Message-ID: <20120605151905.GB21325@Krystal> (raw)
In-Reply-To: <524C960C5DFC794E82BE548D825F05CF28344978@EU-MBX-01.mgc.mentorg.com>
* Oestman, Fredrik (Fredrik_Oestman at mentor.com) wrote:
> I stumbled across some code where pointers are de-referenced and then checked for NULL.
>
> Cheers,
merged into master and stable-2.0, thanks!
Mathieu
>
> Fredrik ?stman
>
>
> diff --git a/liblttng-ust-ctl/ustctl.c b/liblttng-ust-ctl/ustctl.c
> index 9789413..80aed04 100644
> --- a/liblttng-ust-ctl/ustctl.c
> +++ b/liblttng-ust-ctl/ustctl.c
> @@ -732,7 +732,7 @@ void ustctl_unmap_channel(struct lttng_ust_shm_handle *handle)
> struct lttng_ust_lib_ring_buffer *ustctl_open_stream_read(struct lttng_ust_shm_handle *handle,
> int cpu)
> {
> - struct channel *chan = handle->shadow_chan;
> + struct channel *chan;
> int *shm_fd, *wait_fd;
> uint64_t *memory_map_size;
> struct lttng_ust_lib_ring_buffer *buf;
> @@ -741,6 +741,7 @@ struct lttng_ust_lib_ring_buffer *ustctl_open_stream_read(struct lttng_ust_shm_h
> if (!handle)
> return NULL;
>
> + chan = handle->shadow_chan;
> buf = channel_get_ring_buffer(&chan->backend.config,
> chan, cpu, handle, &shm_fd, &wait_fd, &memory_map_size);
> if (!buf)
> @@ -784,11 +785,12 @@ int ustctl_get_mmap_len(struct lttng_ust_shm_handle *handle,
> unsigned long *len)
> {
> unsigned long mmap_buf_len;
> - struct channel *chan = handle->shadow_chan;
> + struct channel *chan;
>
> if (!handle || !buf || !len)
> return -EINVAL;
>
> + chan = handle->shadow_chan;
> if (chan->backend.config.output != RING_BUFFER_MMAP)
> return -EINVAL;
> mmap_buf_len = chan->backend.buf_size;
> @@ -805,11 +807,12 @@ int ustctl_get_max_subbuf_size(struct lttng_ust_shm_handle *handle,
> struct lttng_ust_lib_ring_buffer *buf,
> unsigned long *len)
> {
> - struct channel *chan = handle->shadow_chan;
> + struct channel *chan;
>
> if (!handle || !buf || !len)
> return -EINVAL;
>
> + chan = handle->shadow_chan;
> *len = chan->backend.subbuf_size;
> return 0;
> }
> @@ -823,12 +826,13 @@ int ustctl_get_max_subbuf_size(struct lttng_ust_shm_handle *handle,
> int ustctl_get_mmap_read_offset(struct lttng_ust_shm_handle *handle,
> struct lttng_ust_lib_ring_buffer *buf, unsigned long *off)
> {
> - struct channel *chan = handle->shadow_chan;
> + struct channel *chan;
> unsigned long sb_bindex;
>
> if (!handle || !buf || !off)
> return -EINVAL;
>
> + chan = handle->shadow_chan;
> if (chan->backend.config.output != RING_BUFFER_MMAP)
> return -EINVAL;
> sb_bindex = subbuffer_id_get_index(&chan->backend.config,
> @@ -841,11 +845,12 @@ int ustctl_get_mmap_read_offset(struct lttng_ust_shm_handle *handle,
> int ustctl_get_subbuf_size(struct lttng_ust_shm_handle *handle,
> struct lttng_ust_lib_ring_buffer *buf, unsigned long *len)
> {
> - struct channel *chan = handle->shadow_chan;
> + struct channel *chan;
>
> if (!handle || !buf || !len)
> return -EINVAL;
>
> + chan = handle->shadow_chan;
> *len = lib_ring_buffer_get_read_data_size(&chan->backend.config, buf,
> handle);
> return 0;
> @@ -855,11 +860,12 @@ int ustctl_get_subbuf_size(struct lttng_ust_shm_handle *handle,
> int ustctl_get_padded_subbuf_size(struct lttng_ust_shm_handle *handle,
> struct lttng_ust_lib_ring_buffer *buf, unsigned long *len)
> {
> - struct channel *chan = handle->shadow_chan;
> + struct channel *chan;
>
> if (!handle || !buf || !len)
> return -EINVAL;
>
> + chan = handle->shadow_chan;
> *len = lib_ring_buffer_get_read_data_size(&chan->backend.config, buf,
> handle);
> *len = PAGE_ALIGN(*len);
>
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
next prev parent reply other threads:[~2012-06-05 15:19 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CABnnsm_MJHGq_TcjZj5_4_2TmTDhQUPGeJAyd3HYn6V7bPFQaw@mail.gmail.com>
[not found] ` <524C960C5DFC794E82BE548D825F05CF283435F8@EU-MBX-01.mgc.mentorg.com>
2012-06-04 3:22 ` [lttng-dev] Displaying graphical results tchak adim
2012-06-04 20:57 ` tchak adim
2012-06-05 7:06 ` Oestman, Fredrik
2012-06-05 8:19 ` [lttng-dev] UST check pointer/de-reference order Oestman, Fredrik
2012-06-05 15:19 ` Mathieu Desnoyers [this message]
2012-06-05 9:27 ` [lttng-dev] Displaying graphical results Francis Giraldeau
2012-06-05 13:40 ` Bernd Hufmann
2012-06-05 16:56 ` tchak adim
[not found] ` <4FC3CBF6.1060608@polymtl.ca>
2012-06-05 17:02 ` Brosseau, Yannick
2012-06-05 17:12 ` tchak adim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120605151905.GB21325@Krystal \
--to=mathieu.desnoyers@efficios.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox