[openrtm-users 00151] [BUG] Ring Bufferのメモリ欄外参照

1 post / 0 new
root
Offline
Last seen: 1 day 9 hours ago
Joined: 2009-06-23 14:31
[openrtm-users 00151] [BUG] Ring Bufferのメモリ欄外参照

産総研の清水です.

リングバッファにメモリの欄外参照を起こすバグが見付かりました.
修正パッチを作りましたので送ります.
場合によってはコンポーネント自体が落ちてしまうことがあるので,
早急な修正をお薦めいたします.
以下は問題の詳細です.

[問題]
リングバッファのm_newPtrの初期値が
バッファのlengthと同じになっており,
その場所はバッファの欄外である.
バッファのreadは,m_newPtrのアドレスを参照するため,
DataPortをRingBufferと共にregisterしたあと,
データのwriteが起こる前にreadを行うと,
メモリの欄外参照を引き起こす.
Fedoraの場合,RingBufferのメモリ領域は,
DataPortの直前に配置されるらしく,
RingBufferの欄外参照によってDataPortのメモリの
先頭領域が破壊されるため,Segmentation Fault
となってコンポーネント自体が落ちる.

[対応]
m_newPtrの初期値をlength-1とした.

清水

Undefined

Download

latest Releases : 2.0.0-RELESE

2.0.0-RELESE Download page

Number of Projects

Choreonoid

Motion editor/Dynamics simulator

OpenHRP3

Dynamics simulator

OpenRTP

Integrated Development Platform

AIST RTC collection

RT-Components collection by AIST

TORK

Tokyo Opensource Robotics Association

DAQ-Middleware

Middleware for DAQ (Data Aquisition) by KEK