==== Enforce an upper limit When performing a memory allocation whose size depends on a user-controlled parameter, it is of prime importance to enforce an upper limit to the size being allocated. This will prevent any overly big memory slot from being consumed by a single allocation. Note that forcing an upper limit will not prevent Denial of Service attacks. When an allocation size is restricted to a reasonable amount, attackers can still request the allocating feature multiple times until the combined allocation size becomes big enough to cause exhaustion. However, the smaller the allowed allocation size, the higher the number of necessary requests and, thus, the higher the required resources on the attacker side. As for most of the DoS attack vectors, a trade-off must be found to prevent most attackers from causing exhaustion while keeping a good level of performance and usability.