• Mathieu Desnoyers's avatar
    lttng lib: ring buffer move null pointer check to open · eeb34e21
    Mathieu Desnoyers authored
    * Dan Carpenter <dan.carpenter@oracle.com> wrote:
    > The patch c844b2f5: "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
    
    Let's move the NULL buf check to the file "open", where it belongs. The
    "open" file operation is the actual interface between lib ring buffer
    and the modules using it.
    Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    eeb34e21
ring_buffer_vfs.c 9.91 KB