diff options
author | Sebastian Rasmussen <sebras@hotmail.com> | 2008-03-31 22:54:18 +0200 |
---|---|---|
committer | Sebastian Rasmussen <sebras@hotmail.com> | 2008-03-31 22:54:18 +0200 |
commit | 1f36f8fd210c0d7bd0f3701073ddf8f4fdbec075 (patch) | |
tree | 00a8a1e083494c2acb3d1b4203cca95d60205ef9 | |
parent | 7c7db190f8cfe4d868e698e7bc3c76a1deb6e6ad (diff) | |
download | mupdf-1f36f8fd210c0d7bd0f3701073ddf8f4fdbec075.tar.xz |
Fixed fax decoder so tagbits are properly parsed even in the absence of eol.
-rw-r--r-- | stream/filt_faxd.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/stream/filt_faxd.c b/stream/filt_faxd.c index 4de4d226..37631684 100644 --- a/stream/filt_faxd.c +++ b/stream/filt_faxd.c @@ -359,6 +359,8 @@ loop: if (fax->k > 0) { + if (fax->a == -1) + fax->a = 0; if ((fax->word >> (32 - 1)) == 1) fax->dim = 1; else @@ -366,6 +368,15 @@ loop: eatbits(fax, 1); } } + else if (fax->k > 0 && fax->a == -1) + { + fax->a = 0; + if ((fax->word >> (32 - 1)) == 1) + fax->dim = 1; + else + fax->dim = 2; + eatbits(fax, 1); + } else if (fax->dim == 1) { fax->eolc = 0; @@ -428,7 +439,7 @@ eol: } /* we have not read dim from eol, make a guess */ - if (fax->k > 0 && !fax->eolc) + if (fax->k > 0 && !fax->eolc && fax->a == -1) { if (fax->ridx % fax->k == 0) fax->dim = 1; |