[ODE] Patch fo use of uninitialised value of size 8 in checkMass(dMass *)

Olivier Michel Olivier.Michel at cyberbotics.com
Tue Jun 10 02:00:02 2003


The patch is the following: replace line 62 of mass.cpp:

  for (int i=0; i<12; i++) I2[i] = m->I[i] + m->mass*I2[i];

by the following:

  for (int i=0; i<12; i++) if (i%4!=3) I2[i] = m->I[i] + m->mass*I2[i];

That fixes the problem. Can anyone commit this patch ? Thanks.
Otherwise ODE seems to be pretty valgrind clean (this patch apparently 
also fixes the other problem I mentionned).

-Olivier

Olivier Michel wrote:

> After recompiling ODE in debug mode, valgrind told me the error is in 
> line 62 of file mass.cpp./
> /I understood the problem and I will submit a patch soon. It is 
> related with matrix computation and should not cause any bugs, but it 
> is not very clean (does useless extra computation and polute 
> valgrind), hence I'd prefer to see it fixed. I also found another 
> similar problem in another source file of ODE. I will also try to fix it.
>
> -Olivier
>
> Martin C. Martin wrote:
>
>> Can you provide any more details, such as a line number or a stack 
>> trace?
>>
>> - Martin
>>
>> Olivier Michel wrote:
>>  
>>
>>> Hello,
>>>
>>> I tryed valgind (a memory leak debugger) on ODE and it found some
>>> possible problem in ODE:
>>>
>>> "use of uninitialised value of size 8 in checkMass(dMass *)"
>>>
>>> You can reproduce this problem by installing valgrind and running it on
>>> test_boxstack:
>>>
>>> # valgrind ./test_boxstack.exe
>>>
>>> -Olivier
>>>   
>>
>
> _______________________________________________
> ODE mailing list
> ODE@q12.org
> http://q12.org/mailman/listinfo/ode
>

-- 
-Olivier Michel
http://www.cyberbotics.com
Phone/Fax: +41 21 693 8624