* [lttng-dev] lttng lib: ring buffer
@ 2011-11-30 8:44 Dan Carpenter
2011-11-30 13:07 ` Mathieu Desnoyers
0 siblings, 1 reply; 6+ messages in thread
From: Dan Carpenter @ 2011-11-30 8:44 UTC (permalink / raw)
Hello Mathieu Desnoyers,
This is a semi-automatic email about new static checker warnings.
The patch c844b2f5cfea: "lttng lib: ring buffer" from Nov 28, 2011,
leads to the following Smatch complaint:
drivers/staging/lttng/lib/ringbuffer/ring_buffer_mmap.c +33 lib_ring_buffer_fault()
warn: variable dereferenced before check 'buf' (see line 26)
drivers/staging/lttng/lib/ringbuffer/ring_buffer_mmap.c
25 struct lib_ring_buffer *buf = vma->vm_private_data;
26 struct channel *chan = buf->backend.chan;
^^^^^^^^^^^^^^^^^
Dereference.
27 const struct lib_ring_buffer_config *config = chan->backend.config;
28 pgoff_t pgoff = vmf->pgoff;
29 struct page **page;
30 void **virt;
31 unsigned long offset, sb_bindex;
32
33 if (!buf)
^^^^
Check.
34 return VM_FAULT_OOM;
35
regards,
dan carpenter
^ permalink raw reply [flat|nested] 6+ messages in thread* [lttng-dev] lttng lib: ring buffer
2011-11-30 8:44 [lttng-dev] lttng lib: ring buffer Dan Carpenter
@ 2011-11-30 13:07 ` Mathieu Desnoyers
0 siblings, 0 replies; 6+ messages in thread
From: Mathieu Desnoyers @ 2011-11-30 13:07 UTC (permalink / raw)
Will remove the duplicated check (it's already checked within
lib_ring_buffer_mmap_buf), and push to gregkh in my next round, thanks!
Mathieu
* Dan Carpenter (dan.carpenter at oracle.com) wrote:
> Hello Mathieu Desnoyers,
>
> This is a semi-automatic email about new static checker warnings.
>
> The patch c844b2f5cfea: "lttng lib: ring buffer" from Nov 28, 2011,
> leads to the following Smatch complaint:
>
> drivers/staging/lttng/lib/ringbuffer/ring_buffer_mmap.c +33 lib_ring_buffer_fault()
> warn: variable dereferenced before check 'buf' (see line 26)
>
> drivers/staging/lttng/lib/ringbuffer/ring_buffer_mmap.c
> 25 struct lib_ring_buffer *buf = vma->vm_private_data;
> 26 struct channel *chan = buf->backend.chan;
> ^^^^^^^^^^^^^^^^^
> Dereference.
>
> 27 const struct lib_ring_buffer_config *config = chan->backend.config;
> 28 pgoff_t pgoff = vmf->pgoff;
> 29 struct page **page;
> 30 void **virt;
> 31 unsigned long offset, sb_bindex;
> 32
> 33 if (!buf)
> ^^^^
> Check.
>
> 34 return VM_FAULT_OOM;
> 35
>
> regards,
> dan carpenter
>
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [lttng-dev] lttng lib: ring buffer
@ 2011-11-30 8:45 Dan Carpenter
2011-11-30 13:16 ` Mathieu Desnoyers
0 siblings, 1 reply; 6+ messages in thread
From: Dan Carpenter @ 2011-11-30 8:45 UTC (permalink / raw)
Hello Mathieu Desnoyers,
This is a semi-automatic email about new static checker warnings.
The patch c844b2f5cfea: "lttng lib: ring buffer" from Nov 28, 2011,
leads to the following Smatch complaint:
drivers/staging/lttng/lib/ringbuffer/ring_buffer_mmap.c +86 lib_ring_buffer_mmap_buf()
warn: variable dereferenced before check 'buf' (see line 79)
drivers/staging/lttng/lib/ringbuffer/ring_buffer_mmap.c
78 unsigned long length = vma->vm_end - vma->vm_start;
79 struct channel *chan = buf->backend.chan;
^^^^^^^^^^^^^^^^^
Dereference.
80 const struct lib_ring_buffer_config *config = chan->backend.config;
81 unsigned long mmap_buf_len;
82
83 if (config->output != RING_BUFFER_MMAP)
84 return -EINVAL;
85
86 if (!buf)
^^^^
Check.
87 return -EBADF;
88
regards,
dan carpenter
^ permalink raw reply [flat|nested] 6+ messages in thread* [lttng-dev] lttng lib: ring buffer
2011-11-30 8:45 Dan Carpenter
@ 2011-11-30 13:16 ` Mathieu Desnoyers
0 siblings, 0 replies; 6+ messages in thread
From: Mathieu Desnoyers @ 2011-11-30 13:16 UTC (permalink / raw)
Fixed by moving the check higher up, to lib_ring_buffer_open.
Thanks!
Mathieu
* Dan Carpenter (dan.carpenter at oracle.com) wrote:
> Hello Mathieu Desnoyers,
>
> This is a semi-automatic email about new static checker warnings.
>
> The patch c844b2f5cfea: "lttng lib: ring buffer" from Nov 28, 2011,
> leads to the following Smatch complaint:
>
> drivers/staging/lttng/lib/ringbuffer/ring_buffer_mmap.c +86 lib_ring_buffer_mmap_buf()
> warn: variable dereferenced before check 'buf' (see line 79)
>
> drivers/staging/lttng/lib/ringbuffer/ring_buffer_mmap.c
> 78 unsigned long length = vma->vm_end - vma->vm_start;
> 79 struct channel *chan = buf->backend.chan;
> ^^^^^^^^^^^^^^^^^
> Dereference.
>
> 80 const struct lib_ring_buffer_config *config = chan->backend.config;
> 81 unsigned long mmap_buf_len;
> 82
> 83 if (config->output != RING_BUFFER_MMAP)
> 84 return -EINVAL;
> 85
> 86 if (!buf)
> ^^^^
> Check.
>
> 87 return -EBADF;
> 88
>
> regards,
> dan carpenter
>
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
^ permalink raw reply [flat|nested] 6+ messages in thread
* [lttng-dev] lttng lib: ring buffer
@ 2011-11-30 8:44 Dan Carpenter
2011-11-30 13:03 ` Mathieu Desnoyers
0 siblings, 1 reply; 6+ messages in thread
From: Dan Carpenter @ 2011-11-30 8:44 UTC (permalink / raw)
Hello Mathieu Desnoyers,
This is a semi-automatic email about new static checker warnings.
The patch c844b2f5cfea: "lttng lib: ring buffer" from Nov 28, 2011,
leads to the following Smatch complaint:
drivers/staging/lttng/lib/ringbuffer/ring_buffer_frontend.c +1150 lib_ring_buffer_print_buffer_errors()
warn: variable dereferenced before check 'chan' (see line 1143)
drivers/staging/lttng/lib/ringbuffer/ring_buffer_frontend.c
1142 {
1143 const struct lib_ring_buffer_config *config = chan->backend.config;
^^^^^^^^^^^^^^^^^^^^
Dereference.
1144 unsigned long write_offset, cons_offset;
1145
1146 /*
1147 * Can be called in the error path of allocation when
1148 * trans_channel_data is not yet set.
1149 */
1150 if (!chan)
^^^^^^^^^
Check. At first glance the comment seems out of date, I think check can
be removed safely.
1151 return;
1152 /*
regards,
dan carpenter
^ permalink raw reply [flat|nested] 6+ messages in thread* [lttng-dev] lttng lib: ring buffer
2011-11-30 8:44 Dan Carpenter
@ 2011-11-30 13:03 ` Mathieu Desnoyers
0 siblings, 0 replies; 6+ messages in thread
From: Mathieu Desnoyers @ 2011-11-30 13:03 UTC (permalink / raw)
Fixed, I'll push the patch to GregKH in my next round.
Thanks!
Mathieu
* Dan Carpenter (dan.carpenter at oracle.com) wrote:
> Hello Mathieu Desnoyers,
>
> This is a semi-automatic email about new static checker warnings.
>
> The patch c844b2f5cfea: "lttng lib: ring buffer" from Nov 28, 2011,
> leads to the following Smatch complaint:
>
> drivers/staging/lttng/lib/ringbuffer/ring_buffer_frontend.c +1150 lib_ring_buffer_print_buffer_errors()
> warn: variable dereferenced before check 'chan' (see line 1143)
>
> drivers/staging/lttng/lib/ringbuffer/ring_buffer_frontend.c
> 1142 {
> 1143 const struct lib_ring_buffer_config *config = chan->backend.config;
> ^^^^^^^^^^^^^^^^^^^^
> Dereference.
>
> 1144 unsigned long write_offset, cons_offset;
> 1145
> 1146 /*
> 1147 * Can be called in the error path of allocation when
> 1148 * trans_channel_data is not yet set.
> 1149 */
> 1150 if (!chan)
> ^^^^^^^^^
> Check. At first glance the comment seems out of date, I think check can
> be removed safely.
>
> 1151 return;
> 1152 /*
>
> regards,
> dan carpenter
>
--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-11-30 13:16 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-30 8:44 [lttng-dev] lttng lib: ring buffer Dan Carpenter
2011-11-30 13:07 ` Mathieu Desnoyers
-- strict thread matches above, loose matches on Subject: below --
2011-11-30 8:45 Dan Carpenter
2011-11-30 13:16 ` Mathieu Desnoyers
2011-11-30 8:44 Dan Carpenter
2011-11-30 13:03 ` Mathieu Desnoyers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox