Hi Folkert,
In all version it is crashing. when i debug these i found that p value is coming negative at memset. the function snippet is: in aplay.c file in alsa-utils.
in the below function for c=0 it is working when c incremented to 1 the p value is becoming negative . so memset is crashing.
static void print_vu_meter_stereo(int *perc, int *maxperc) { const int bar_length = 35; char line[80]; int c;
memset(line, ' ', sizeof(line) - 1); line[bar_length + 3] = '|';
for (c = 0; c < 2; c++) { int p = perc[c] * bar_length / 100; char tmp[4]; if (p > bar_length) p = bar_length; if (c) memset(line + bar_length + 6 + 1, '#', p); ----------------//this is the line where it is crashing.here p value is becoming negative at c=1.As we see if we change the p value to bar_length it works fine ..As it is a player issue not a driver issue.
else memset(line + bar_length - p - 1, '#', p); p = maxperc[c] * bar_length / 100; if (p > bar_length) p = bar_length; if (c) line[bar_length + 6 + 1 + p] = '+'; else line[bar_length - p - 1] = '+'; if (maxperc[c] > 99) sprintf(tmp, "MAX"); else sprintf(tmp, "%02d%%", maxperc[c]); if (c) memcpy(line + bar_length + 3 + 1, tmp, 3); else memcpy(line + bar_length, tmp, 3); } line[bar_length * 2 + 6 + 2] = 0; fputs(line, stderr); } Could you please help on this.As the driver data is fine when we keep p value to bar length and checked . .
Thanks Sujith
On Fri, Aug 20, 2021 at 12:36 AM folkert folkert@vanheusden.com wrote:
arecord is failing vumeter option -V stereo only.
What version? Because the commandline you provide works fine here with
1.2.4-1ubuntu3.
1.2.1.2
See what happens if you upgrade to 1.2.4.