Bug #1277 ยป ossl_bio.patch
| ext/openssl/ossl_bio.c (working copy) | ||
|---|---|---|
|
if (TYPE(obj) == T_FILE) {
|
||
|
rb_io_t *fptr;
|
||
|
FILE *fp;
|
||
|
int fd;
|
||
|
GetOpenFile(obj, fptr);
|
||
| ... | ... | |
|
if ((fd = dup(FPTR_TO_FD(fptr))) < 0){
|
||
|
rb_sys_fail(0);
|
||
|
}
|
||
|
if (!(fp = fdopen(fd, "r"))){
|
||
|
close(fd);
|
||
|
rb_sys_fail(0);
|
||
|
}
|
||
|
if (!(bio = BIO_new_fp(fp, BIO_CLOSE))){
|
||
|
fclose(fp);
|
||
|
if (!(bio = BIO_new_file(RSTRING_PTR(fptr->pathv), "r"))){
|
||
|
ossl_raise(eOSSLError, NULL);
|
||
|
}
|
||
|
}
|
||