Loading ifs/include/preload/passthrough.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ extern void* libc_clearerr; extern void* libc_feof; extern void* libc_ferror; extern void* libc_fileno; extern void* libc_fflush; extern void* libc_mkdir; extern void* libc_mkdirat; Loading ifs/src/preload/intcp_functions.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -265,6 +265,19 @@ int ferror(FILE *stream) { return (reinterpret_cast<decltype(&ferror)>(libc_ferror))(stream); } int fflush(FILE *stream) { init_passthrough_if_needed(); if(CTX->initialized() && (stream != nullptr)) { auto fd = file_to_fd(stream); if(CTX->file_map()->exist(fd)) { CTX->log()->trace("{}() called with fd {}", __func__, fd); return 0; } } return (reinterpret_cast<decltype(&fflush)>(libc_fflush))(stream); } /****** FILE OPS ******/ #undef creat Loading ifs/src/preload/passthrough.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ void* libc_clearerr; void* libc_feof; void* libc_ferror; void* libc_fileno; void* libc_fflush; void* libc_mkdir; void* libc_mkdirat; Loading Loading @@ -107,6 +108,7 @@ void init_passthrough_() { libc_feof = dlsym(libc, "feof"); libc_ferror = dlsym(libc, "ferror"); libc_fileno = dlsym(libc, "fileno"); libc_fflush = dlsym(libc, "fflush"); libc_mkdir = dlsym(libc, "mkdir"); libc_mkdirat = dlsym(libc, "mkdirat"); Loading Loading
ifs/include/preload/passthrough.hpp +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ extern void* libc_clearerr; extern void* libc_feof; extern void* libc_ferror; extern void* libc_fileno; extern void* libc_fflush; extern void* libc_mkdir; extern void* libc_mkdirat; Loading
ifs/src/preload/intcp_functions.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -265,6 +265,19 @@ int ferror(FILE *stream) { return (reinterpret_cast<decltype(&ferror)>(libc_ferror))(stream); } int fflush(FILE *stream) { init_passthrough_if_needed(); if(CTX->initialized() && (stream != nullptr)) { auto fd = file_to_fd(stream); if(CTX->file_map()->exist(fd)) { CTX->log()->trace("{}() called with fd {}", __func__, fd); return 0; } } return (reinterpret_cast<decltype(&fflush)>(libc_fflush))(stream); } /****** FILE OPS ******/ #undef creat Loading
ifs/src/preload/passthrough.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ void* libc_clearerr; void* libc_feof; void* libc_ferror; void* libc_fileno; void* libc_fflush; void* libc_mkdir; void* libc_mkdirat; Loading Loading @@ -107,6 +108,7 @@ void init_passthrough_() { libc_feof = dlsym(libc, "feof"); libc_ferror = dlsym(libc, "ferror"); libc_fileno = dlsym(libc, "fileno"); libc_fflush = dlsym(libc, "fflush"); libc_mkdir = dlsym(libc, "mkdir"); libc_mkdirat = dlsym(libc, "mkdirat"); Loading