summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pdf/pdf_file.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/pdf/pdf_file.c b/pdf/pdf_file.c
index 36e8ce376..1306f125b 100644
--- a/pdf/pdf_file.c
+++ b/pdf/pdf_file.c
@@ -1541,8 +1541,6 @@ pdfi_stream_to_buffer(pdf_context *ctx, pdf_stream *stream_obj, byte **buf, int6
byte *Buffer = NULL;
int code = 0;
int64_t buflen = 0;
- int bytes;
- char c;
gs_offset_t savedoffset;
pdf_c_stream *stream;
bool filtered;
@@ -1572,12 +1570,11 @@ pdfi_stream_to_buffer(pdf_context *ctx, pdf_stream *stream_obj, byte **buf, int6
if (code < 0) {
goto exit;
}
- /* Find out how big it is */
- do {
- bytes = sfread(&c, 1, 1, stream->s);
- if (bytes > 0)
- buflen++;
- } while (bytes >= 0);
+ while (seofp(stream->s) != true && serrorp(stream->s) != true) {
+ sreset(stream->s);
+ s_process_read_buf(stream->s);
+ buflen += sbufavailable(stream->s);
+ }
pdfi_close_file(ctx, stream);
} else {
buflen = pdfi_stream_length(ctx, stream_obj);