summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@hotmail.com>2008-03-31 22:54:18 +0200
committerSebastian Rasmussen <sebras@hotmail.com>2008-03-31 22:54:18 +0200
commit1f36f8fd210c0d7bd0f3701073ddf8f4fdbec075 (patch)
tree00a8a1e083494c2acb3d1b4203cca95d60205ef9
parent7c7db190f8cfe4d868e698e7bc3c76a1deb6e6ad (diff)
downloadmupdf-1f36f8fd210c0d7bd0f3701073ddf8f4fdbec075.tar.xz
Fixed fax decoder so tagbits are properly parsed even in the absence of eol.
-rw-r--r--stream/filt_faxd.c13
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;