Make _gcry_burn_stack use variable length array
authorJussi Kivilinna <jussi.kivilinna@iki.fi>
Wed, 4 Sep 2013 07:00:45 +0000 (10:00 +0300)
committerJussi Kivilinna <jussi.kivilinna@iki.fi>
Wed, 4 Sep 2013 07:00:45 +0000 (10:00 +0300)
commit4b0edf53440239d3bcc95941980c062a0801a149
tree822302c176b7a052e01e9173b88df343bfc8d360
parenta3aaa6ad03388ea3eaa24304b604cb864633332f
Make _gcry_burn_stack use variable length array

* configure.ac (HAVE_VLA): Add check.
* src/misc.c (_gcry_burn_stack) [HAVE_VLA]: Add VLA code.
--

Some gcc versions convert _gcry_burn_stack into loop that overwrites the same
64-byte stack buffer instead of burn stack deeper. It's argued at GCC bugzilla
that _gcry_burn_stack is doing wrong thing here [1] and that this kind of
optimization is allowed.

So lets fix _gcry_burn_stack by using variable length array when VLAs are
supported by compiler. This should ensure proper stack burning to the requested
depth and avoid GCC loop optimizations.

[1] http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52285

Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
configure.ac
src/misc.c