Re: [PATCH] mm: fix arithmetic overflow in __vm_enough_memory()

From: Roman Gushchin
Date: Fri Jan 30 2015 - 08:14:22 EST


29.01.2015, 22:57, "Andrew Shewmaker" <agshew@xxxxxxxxx>:
> On Thu, Jan 29, 2015 at 04:06:03PM +0300, Roman Gushchin wrote:
>>  I noticed, that "allowed" can easily overflow by falling below 0,
>>  because (total_vm / 32) can be larger than "allowed". The problem
>>  occurs in OVERCOMMIT_NONE mode.
>>

> Makes sense to me. Please fix mm/nommu.c also.

Thanks!
I sent a patch for nommu.c.

>
> If a caller passes in a big negative value for pages,
> then vm_acct_memory() would decrement vm_committed_as, possibly
> causing percpu_counter_read_positive(&vm_committed_as) and
> __vm_enough_memory to return 0. Maybe that's okay? Callers
> won't be passing in a negative pages anyway. Is there a reason
> to let them, though?

I think, it isn't a problem, since no one will commit negative values (I hope).

R.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/