resampler icon indicating copy to clipboard operation
resampler copied to clipboard

fix oob read

Open anzz1 opened this issue 11 months ago • 0 comments

fix out-of-bounds read (and garbage last field) when outputSize % 2 == 1

demonstration

int16_t input_buffer[1024];
for (int i = 0; i < 1024; i++) {
  input_buffer[i] = i * 10;
}
size_t input_size = sizeof(input_buffer) / sizeof(input_buffer[0]);

// zeroes for demonstration purposes
int16_t output_buffer[4096];
for (int i = 0; i < 4096; i++) {
  output_buffer[i] = 0;
}

size_t output_size = Resample_s16(input_buffer, output_buffer, 8000, 11025, 1024, 1);

printf("Original Data (%u):\n", input_size);
for (size_t i = 0; i < 1024; i++) {
  printf("%hd ", input_buffer[i]);
}

printf("\nUpsampled Data (%u):\n", output_size);
for (size_t i = 0; i < output_size; i++) {
  printf("%hd ", output_buffer[i]);
}
printf("\nLast field garbage data: output_buffer[%u]=%u\n", output_size-1, output_buffer[output_size-1]);

anzz1 avatar Feb 05 '25 22:02 anzz1