Michal Suchánek <[email protected]> writes: > The same could be asked of syscall_enter_from_user_mode. I find it very > odd. Why does it conflate the syscall number with its return value? > > It never uses the syscall number passed in except when returning it > unchanged. When it pokes the registers it reads the syscall number from > them. > > If the caller of syscall_enter_from_user_mode only read the syscall > number from the registers when syscall_enter_from_user_mode returns and > indicates the syscall should be still executed this whole shenigan would
I agree. The fact that if (nr < NR_syscall) just works because -1 gets casted to 0xffffffff and is therefore out of bounds is very odd.
