Project

General

Profile

Bug #9036 ยป 0001-io.c-make-IO-reopen-pathname-atomic.patch

[PATCH] io.c: make IO#reopen("pathname") atomic - normalperson (Eric Wong), 10/20/2013 01:16 PM

View differences:

io.c
}
}
else {
if (close(fptr->fd) < 0)
int tmpfd = rb_sysopen(fptr->pathv, oflags, 0666);
int err = 0;
if (rb_cloexec_dup2(tmpfd, fptr->fd) < 0)
err = errno;
(void)close(tmpfd);
if (err) {
errno = err;
rb_sys_fail_path(fptr->pathv);
fptr->fd = -1;
fptr->fd = rb_sysopen(fptr->pathv, oflags, 0666);
}
}
return file;
    (1-1/1)