]> git.sesse.net Git - pitch/blobdiff - pitchdetector.cpp
Fix a buffer overrun that was introduced in the splitting.
[pitch] / pitchdetector.cpp
index 71e5875c7b328a31a38ba45540d967c861af316f..cf0abe0d01fc313dd596aa44cdc956053c6b77cf 100644 (file)
@@ -38,7 +38,7 @@ PitchDetector::~PitchDetector()
 std::pair<double, double> PitchDetector::detect_pitch(short *buf)
 {
        unsigned buf_len = fft_length / pad_factor / overlap;
-       memmove(in, in + buf_len, (fft_length - buf_len) * sizeof(double));
+       memmove(in, in + buf_len, (fft_length / pad_factor - buf_len) * sizeof(double));
        
        for (unsigned i = 0; i < buf_len; ++i)
                in[i + (fft_length / pad_factor - buf_len)] = double(buf[i]);