X-Git-Url: http://www.wagner.pp.ru/gitweb/?p=oss%2Fcatdoc.git;a=blobdiff_plain;f=src%2Fole.c;h=dbcda42d71335ca8ba4d08bb60c6a3f496e47156;hp=e131a0dac2140921121edfeda7c65dc14fa3ffca;hb=b7046520d2de550b7ac99599546fe0a5673470e6;hpb=59325793f5368e5eb82da49328ae9a580c33b8e0 diff --git a/src/ole.c b/src/ole.c index e131a0d..dbcda42 100644 --- a/src/ole.c +++ b/src/ole.c @@ -74,6 +74,7 @@ FILE* ole_init(FILE *f, void *buffer, size_t bufSize) { ret=fwrite(buffer, 1, bufSize, newfile); if(ret != bufSize) { perror("Can't write to tmp file"); + fclose(newfile); return NULL; } } @@ -499,8 +500,8 @@ size_t ole_read(void *ptr, size_t size, size_t nmemb, FILE *stream) { int readbytes; blockNumber++; newoffset = calcFileBlockOffset(e,blockNumber); - if (newoffset != e->file_offset); - fseek(e->file, e->file_offset=newoffset , SEEK_SET); + if (newoffset != e->file_offset) + fseek(e->file, e->file_offset=newoffset , SEEK_SET); readbytes=fread(cptr+rread, 1, min(llen-rread, ssize), e->file); rread +=readbytes; e->file_offset +=readbytes;