Skip to contentSkip to conversation

New: syscall fanotify_mark overflow.

Bug 94791 [email protected] 1 participant 4 messages Mar 12, 2015 – Dec 1, 2015

lore
Share & tools
lore
#0 lore raw

https://bugzilla.kernel.org/show_bug.cgi?id=94791

Bug ID: 94791
Summary: syscall fanotify_mark overflow.
Product: File System
Version: 2.5
Kernel Version: 4.x
Hardware: All
OS: Linux
Tree: Mainline
Status: NEW
Severity: normal
Priority: P1
Component: ext4
Assignee: [email protected]
Reporter: [email protected]
Regression: No

file:
fanotify_usr.c:
syscall function fanotify_mark,below code will overflow on 32-bit system.

/* we only use the lower 32 bits as of right now. */ if ( mask & ((__u64)0xffffffff << 32))

        return -EINVAL;

include/linux/syscalls.h:
asmlinkage long sys_fanotify_mark(int fanotify_fd, unsigned int flags, u64
mask, int fd, const char __usr *pathname);

u64 mask ,should convert to unsigned int mask???

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.
#1 lore raw

[Bug 94791] syscall fanotify_mark overflow.

https://bugzilla.kernel.org/show_bug.cgi?id=94791

Tim Pickersgill <[email protected]> changed:

What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected]

--- Comment #1 from Tim Pickersgill <[email protected]> --- A __u64 value is an unsigned long long, a 64-bit integer, regardless of system bitness. Not sure how/why this would overflow on a 32-bit system. What symptoms are you seeing?

We're using fanotify_mark() on 32-bit systems without seeing any issue here.

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.
#3 lore raw

[Bug 94791] syscall fanotify_mark overflow.

In reply to [email protected]

https://bugzilla.kernel.org/show_bug.cgi?id=94791

--- Comment #3 from Tim Pickersgill <[email protected]> --- Tinkering with Eric Paris's fanotify-example
(http://git.infradead.org/users/eparis/fanotify-example.git), to forcibly set higher bits in the mask passed to fanotify_mark(), the call correctly returns -EINVAL on both 32- and 64-bit kernels.

Suggest this bug should be rejected unless a failing example can be provided.

Signature · 2 lines
You are receiving this mail because:
You are watching the assignee of the bug.