問題タブ [talloc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
136 参照

c - 複数のスレッドで共有される割り当てられたメモリを書き込みから保護する

私たちのアプリケーション (ネットワーク デーモン) では、ヒープに割り当てられたメモリをおよそ 3 つの用途で使用しています。

  1. アプリケーションのグローバル構成の解析結果を保持するために起動時に割り当てられるメモリ。

  2. スレッドが作成されるときにスレッド固有のデータに割り当てられるメモリ (およびスレッドが破棄されるときに解放される)。

  3. リクエストを処理するときに割り当てられ、リクエストの有効期間にバインドされたメモリ。

3 つのケースすべてで、talloc を使用してメモリを管理します。

最近、1 つ以上のスレッドがグローバル構成に書き込みを行ってクラッシュを引き起こしていることを意味する不適切なポインター値が原因で、メモリ破損の問題が発生しました。

アプリケーションが構造化されているため、アプリケーションがリクエストの処理を開始した後は、ケース 1) で割り当てられたメモリに何も書き込まないでください。

ケース1)で割り当てられたメモリを読み取り専用としてマークする方法はありますか?