diff --git a/src/modules/files/file.c b/src/modules/files/file.c index 60c0b92d8132c5347cb1be385efd5c642371abb0..247ba262826d3a2212c6f6ddc07baf7f55280c7e 100644 --- a/src/modules/files/file.c +++ b/src/modules/files/file.c @@ -5,7 +5,7 @@ \*/ #include "global.h" -RCSID("$Id: file.c,v 1.126 1998/10/21 22:01:01 grubba Exp $"); +RCSID("$Id: file.c,v 1.127 1998/10/22 00:10:13 grubba Exp $"); #include "fdlib.h" #include "interpret.h" #include "svalue.h" @@ -551,7 +551,7 @@ static struct pike_string *do_read_oob(int fd, if(!IS_ZERO(& THIS->read_oob_callback)) { - set_read_callback(FD, file_read_oob_callback, THIS); + set_read_oob_callback(FD, file_read_oob_callback, THIS); SET_INTERNAL_REFERENCE(THIS); } @@ -560,8 +560,8 @@ static struct pike_string *do_read_oob(int fd, return end_shared_string(str); }else{ struct pike_string *foo; /* Per */ - foo = make_shared_binary_string(str->str,bytes_read); - free((char *)str); + foo = make_shared_binary_string(str->str, bytes_read); + free_string(end_shared_string(str)); return foo; } @@ -623,7 +623,7 @@ static struct pike_string *do_read_oob(int fd, UNSET_ONERROR(ebuf); if(!IS_ZERO(& THIS->read_oob_callback)) { - set_read_callback(FD, file_read_oob_callback, THIS); + set_read_oob_callback(FD, file_read_oob_callback, THIS); SET_INTERNAL_REFERENCE(THIS); } return low_free_buf(&b);