Merged PR 617224: [Linux][Detours] Reset file descriptor table entry upon 'fclose'

Related work items: #1849262
This commit is contained in:
Aleksandar Milicevic 2021-06-09 16:29:47 +00:00
Родитель 36dfb0fcc9
Коммит b4bd405fe4
3 изменённых файлов: 7 добавлений и 3 удалений

Просмотреть файл

@ -611,6 +611,11 @@ INTERPOSE(int, close, int fd) ({
return bxl->fwd_close(fd).restore();
})
INTERPOSE(int, fclose, FILE *f) ({
bxl->reset_fd_table_entry(fileno(f));
return bxl->fwd_fclose(f).restore();
})
static void report_exit(int exitCode, void *args)
{
BxlObserver::GetInstance()->report_access("on_exit", ES_EVENT_TYPE_NOTIFY_EXIT, std::string(""), std::string(""));
@ -637,7 +642,6 @@ int main(int argc, char **argv)
/* ============ Sometimes useful (for debugging) to interpose without access checking
INTERPOSE(int, fclose, FILE *f) ({ return bxl->fwd_fclose(f).restore(); })
INTERPOSE(int, dup, int fd) ({ return bxl->fwd_dup(fd).restore(); })
INTERPOSE(int, dup2, int oldfd, int newfd)({ return bxl->fwd_dup2(oldfd, newfd).restore(); })

Просмотреть файл

@ -4110,7 +4110,7 @@
"Type": "NuGet",
"NuGet": {
"Name": "runtime.linux-x64.BuildXL",
"Version": "0.0.47"
"Version": "0.0.48"
}
}
},

Просмотреть файл

@ -405,7 +405,7 @@ config({
// Runtime dependencies for Linux
{
id: "runtime.linux-x64.BuildXL",
version: "0.0.47",
version: "0.0.48",
osSkip: importFile(f`config.microsoftInternal.dsc`).isMicrosoftInternal
? []
: [ "win", "macOS", "unix" ]