projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: ring buffer: RING_BUFFER_FLUSH ioctl buffer corruption
[lttng-modules.git]
/
lib
/
ringbuffer
/
ring_buffer_vfs.c
diff --git
a/lib/ringbuffer/ring_buffer_vfs.c
b/lib/ringbuffer/ring_buffer_vfs.c
index c69b64e1d9ffea5a17d980f29e64d785b8d23762..a7c0e695beecfb96769b95464784d0767f2de423 100644
(file)
--- a/
lib/ringbuffer/ring_buffer_vfs.c
+++ b/
lib/ringbuffer/ring_buffer_vfs.c
@@
-261,7
+261,7
@@
long lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd, unsigned long ar
arg);
}
case RING_BUFFER_FLUSH:
arg);
}
case RING_BUFFER_FLUSH:
- lib_ring_buffer_switch_
slow(buf, SWITCH_ACTIVE
);
+ lib_ring_buffer_switch_
remote(buf
);
return 0;
default:
return -ENOIOCTLCMD;
return 0;
default:
return -ENOIOCTLCMD;
@@
-331,7
+331,7
@@
long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd,
data_size = lib_ring_buffer_get_read_data_size(config, buf);
if (data_size > UINT_MAX)
return -EFBIG;
data_size = lib_ring_buffer_get_read_data_size(config, buf);
if (data_size > UINT_MAX)
return -EFBIG;
- return put_ulong(data_size, arg);
+ return
compat_
put_ulong(data_size, arg);
}
case RING_BUFFER_COMPAT_GET_PADDED_SUBBUF_SIZE:
{
}
case RING_BUFFER_COMPAT_GET_PADDED_SUBBUF_SIZE:
{
@@
-341,12
+341,12
@@
long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd,
size = PAGE_ALIGN(size);
if (size > UINT_MAX)
return -EFBIG;
size = PAGE_ALIGN(size);
if (size > UINT_MAX)
return -EFBIG;
- return put_ulong(size, arg);
+ return
compat_
put_ulong(size, arg);
}
case RING_BUFFER_COMPAT_GET_MAX_SUBBUF_SIZE:
if (chan->backend.subbuf_size > UINT_MAX)
return -EFBIG;
}
case RING_BUFFER_COMPAT_GET_MAX_SUBBUF_SIZE:
if (chan->backend.subbuf_size > UINT_MAX)
return -EFBIG;
- return put_ulong(chan->backend.subbuf_size, arg);
+ return
compat_
put_ulong(chan->backend.subbuf_size, arg);
case RING_BUFFER_COMPAT_GET_MMAP_LEN:
{
unsigned long mmap_buf_len;
case RING_BUFFER_COMPAT_GET_MMAP_LEN:
{
unsigned long mmap_buf_len;
@@
-358,7
+358,7
@@
long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd,
mmap_buf_len += chan->backend.subbuf_size;
if (mmap_buf_len > UINT_MAX)
return -EFBIG;
mmap_buf_len += chan->backend.subbuf_size;
if (mmap_buf_len > UINT_MAX)
return -EFBIG;
- return put_ulong(mmap_buf_len, arg);
+ return
compat_
put_ulong(mmap_buf_len, arg);
}
case RING_BUFFER_COMPAT_GET_MMAP_READ_OFFSET:
{
}
case RING_BUFFER_COMPAT_GET_MMAP_READ_OFFSET:
{
@@
-371,10
+371,10
@@
long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd,
read_offset = buf->backend.array[sb_bindex]->mmap_offset;
if (read_offset > UINT_MAX)
return -EINVAL;
read_offset = buf->backend.array[sb_bindex]->mmap_offset;
if (read_offset > UINT_MAX)
return -EINVAL;
- return put_ulong(read_offset, arg);
+ return
compat_
put_ulong(read_offset, arg);
}
case RING_BUFFER_COMPAT_FLUSH:
}
case RING_BUFFER_COMPAT_FLUSH:
- lib_ring_buffer_switch_
slow(buf, SWITCH_ACTIVE
);
+ lib_ring_buffer_switch_
remote(buf
);
return 0;
default:
return -ENOIOCTLCMD;
return 0;
default:
return -ENOIOCTLCMD;
This page took
0.02484 seconds
and
4
git commands to generate.