アカウント名:
パスワード:
的外れなこと書いていたらすみません。
> 全ての bit を適切にチェックせずに u64 型を int 型で受け取った
コードは
u64 event_id = event->attr.config;/* configはint型 */
のようなので、型が逆なのでは。
Linuxなんてロクに知らないし、大して調べていないけど。v2.6.34.14: perf_event.h [kernel.org]
struct perf_event {
struct perf_event_attr attr;
struct perf_event_attr {
__u64 config;
あなたがLinuxをろくに知らない事だけは良く分かりました。
それは修正後のコード修正前はint event_id = event->attr.config;その後に。if (event_id >= PERF_COUNT_SW_MAX) return -ENOENT;と符号なし整数の前提でエラー処理がされている。
システムコールが-1以外に、[-2、-ERRNO_MAX]相当の値を返せない。#通常のシステムコールはそんな値を正常応答として返さないというのはありますが。
それはfix後ですね。
https://github.com/torvalds/linux/commit/8176cced706b5e5d1588758415076... [github.com]
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
u64型をint型で受け取った (スコア:1)
的外れなこと書いていたらすみません。
> 全ての bit を適切にチェックせずに u64 型を int 型で受け取った
コードは
u64 event_id = event->attr.config;
/* configはint型 */
のようなので、型が逆なのでは。
Re:u64型をint型で受け取った (スコア:2)
Linuxなんてロクに知らないし、大して調べていないけど。
v2.6.34.14: perf_event.h [kernel.org]
Re: (スコア:0)
あなたがLinuxをろくに知らない事だけは良く分かりました。
Re:u64型をint型で受け取った (スコア:1)
それは修正後のコード
修正前は
int event_id = event->attr.config;
その後に。
if (event_id >= PERF_COUNT_SW_MAX)
return -ENOENT;
と符号なし整数の前提でエラー処理がされている。
(オフトピ)まだこの実装なのね。 (スコア:1)
システムコールが-1以外に、[-2、-ERRNO_MAX]相当の値を返せない。
#通常のシステムコールはそんな値を正常応答として返さないというのはありますが。
Re: (スコア:0)
それはfix後ですね。
https://github.com/torvalds/linux/commit/8176cced706b5e5d1588758415076... [github.com]