ㄌㄐ@你的水潤餅大使
我用一個 FILE * function pointer 指了 fopen 拿到 /dev/tty 的 stream
這樣把 output 用 fprintf redirection 給 這個 stream 應該可以ㄅ?
人狼君
嗷~~~嗚~~~

人世一趟辛苦了
ㄌㄐ@你的水潤餅大使
看別人的是用 open ,然後用 dprintf pipe
ㄌㄐ@你的水潤餅大使
但這應該沒差?
ㄌㄐ@你的水潤餅大使
但不知道為什麼我的 fopen 的 hook 都會爆炸
ㄌㄐ@你的水潤餅大使
檢查一下 pointer 是不是 NULL 好ㄌ
ㄌㄐ@你的水潤餅大使
前面 hook fopen 也有成功,剛剛改了 debug file stream 成 stdout 就不會 segfault ㄌ
ㄌㄐ@你的水潤餅大使
所以是不能 pipe 到 /dev/tty?
ㄌㄐ@你的水潤餅大使
ㄛ 這跟我之前看到ㄉ有點像欸
他該不會 hook 到 selinux 的東西啊
ㄌㄐ@你的水潤餅大使
不是欸 加了判斷式就會出錯?
ㄌㄐ@你的水潤餅大使
所以是要絕對位置就會出錯
ㄌㄐ@你的水潤餅大使
錯誤發生在進入 realpath 就爆炸 :-(
ㄌㄐ@你的水潤餅大使
幹 我知道ㄌ
ㄌㄐ@你的水潤餅大使
ㄌㄐ@你的水潤餅大使
selinux 會跑 fopen(/proc/filesystem) 我字串比較就會出事
鹽味拉麵
那叫redirectionㄅ叫pipe
ㄌㄐ@你的水潤餅大使
JaidTw: ㄛ ㄅ欠
ㄌㄐ@你的水潤餅大使
我剛剛找到問題ㄌ
ㄌㄐ@你的水潤餅大使
就是順著 valgrind 的錯誤訊息
發現錯誤出在 realpath 之後
我才發現 getcwd 拿到現在ㄉ dir 位置
但 ls 在呼叫的時候 selinux 會先跑 fopen("/proc/filesystems") 跟 fopen("/proc/mounts")
我如果對 /home/raagi/hw 跟 /proc/filesystems 做 strstr 會 seg fault
ㄌㄐ@你的水潤餅大使
原本是想說 strstr 比較 substring 可以知道他是不是在 cwd 底下
ㄌㄐ@你的水潤餅大使
一個作業學會好幾種 debug 方式還把一些 gnu c ㄉ feature 都查ㄌ
載入新的回覆