summaryrefslogtreecommitdiff
path: root/source/fitz/filter-basic.c
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@gmail.com>2017-09-12 22:26:00 +0800
committerSebastian Rasmussen <sebras@gmail.com>2017-09-13 17:42:00 +0200
commit2707fa9e8e6d17d794330e719dec1b08161fb045 (patch)
tree63b1dfc46e596d0ee6e6f34dec971c62ecbe1f16 /source/fitz/filter-basic.c
parent7c8151b6d42f036644a49245ffd6abf02422ac64 (diff)
downloadmupdf-2707fa9e8e6d17d794330e719dec1b08161fb045.tar.xz
Consistently drop filter chain upon error.
Diffstat (limited to 'source/fitz/filter-basic.c')
-rw-r--r--source/fitz/filter-basic.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/source/fitz/filter-basic.c b/source/fitz/filter-basic.c
index 5630c37b..959006f9 100644
--- a/source/fitz/filter-basic.c
+++ b/source/fitz/filter-basic.c
@@ -162,12 +162,15 @@ fz_open_concat(fz_context *ctx, int len, int pad)
}
void
-fz_concat_push(fz_context *ctx, fz_stream *concat, fz_stream *chain)
+fz_concat_push_drop(fz_context *ctx, fz_stream *concat, fz_stream *chain)
{
struct concat_filter *state = (struct concat_filter *)concat->state;
if (state->count == state->max)
+ {
+ fz_drop_stream(ctx, chain);
fz_throw(ctx, FZ_ERROR_GENERIC, "Concat filter size exceeded");
+ }
state->chain[state->count++] = chain;
}