Add checks in em4x50read to avoid segfaults in case loops go over the GraphTraceLen.

This commit is contained in:
edouard@lafargue.name 2009-07-30 15:24:03 +00:00
parent 890bf4be90
commit 3628c31882

View file

@ -301,17 +301,19 @@ static void CmdEM4x50read(char *str)
while(i < GraphTraceLen)
{
// measure from low to low
while(GraphBuffer[i] > low)
while((GraphBuffer[i] > low) && (i<GraphTraceLen))
++i;
start= i;
while(GraphBuffer[i] < high)
while((GraphBuffer[i] < high) && (i<GraphTraceLen))
++i;
while(GraphBuffer[i] > low)
while((GraphBuffer[i] > low) && (i<GraphTraceLen))
++i;
if (j>(MAX_GRAPH_TRACE_LEN/64)) {
break;
}
tmpbuff[j++]= i - start;
}
/* look for data start - should be 2 pairs of LW (pulses of 192,128) */
start= -1;
skip= 0;