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