From b47dff48fac126f844f6497189b190a5a00957ec Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Tue, 5 Jan 2010 23:07:29 +0100 Subject: [PATCH] Fix a bug in the compress filter in case of odd buffer sizes. --- compress_filter.c | 4 ++++ error.h | 1 + 2 files changed, 5 insertions(+) diff --git a/compress_filter.c b/compress_filter.c index 14df8d96..a0b53bde 100644 --- a/compress_filter.c +++ b/compress_filter.c @@ -110,6 +110,10 @@ next_buffer: return; btr_merge(btrn, fn->min_iqs); length = btr_next_buffer(btrn, &inbuf) & ~(size_t)1; + if (length == 0) { /* eof and 1 byte available */ + ret = -E_COMPRESS_EOF; + goto err; + } ip = (int16_t *)inbuf; if (inplace) op = ip; diff --git a/error.h b/error.h index 538c757a..e47fa152 100644 --- a/error.h +++ b/error.h @@ -85,6 +85,7 @@ extern const char **para_errlist[]; #define COMPRESS_FILTER_ERRORS \ PARA_ERROR(COMPRESS_SYNTAX, "syntax error in compress filter config"), \ + PARA_ERROR(COMPRESS_EOF, "compress: end of file"), \ #define WAV_FILTER_ERRORS \ -- 2.39.5