Maratyszcza / NNPACK

Acceleration package for neural networks on multi-core CPUs
BSD 2-Clause "Simplified" License
1.67k stars 315 forks source link

Fix (ASAN-detected) stack overflow bug on NEON WT_8x8 #171

Closed ajtulloch closed 4 years ago

ajtulloch commented 4 years ago
                NNP_SIMD_ALIGN float block[8][8];
                for (float *block_ptr = &block[0][0], *block_end = &block[8][8]; block_ptr != block_end; block_ptr += 4) {
                                vst1q_f32(block_ptr, vzero);
                        }
                }

is broken, as the block_end is specified as &block[8][8] not &block[8][0]. This results in writes to the "invalid" indices &block[8][0] and &block[8][4].

Broken since https://github.com/Maratyszcza/NNPACK/commit/48cd8e08c69b828785a89460b8c5cf90f72b44b7

Maratyszcza commented 4 years ago

Thanks for the fix!