Commit 74129e8c authored by Kristian Høgsberg's avatar Kristian Høgsberg
Browse files

2006-01-10 Kristian Høgsberg <krh@redhat.com>

        * configure.ac: Bump realease to 0.4.4.

        * NEWS: Sum up changes.

        * poppler/DCTStream.cc: Backport patch for KDE #119569.
parent 9c3d0ab9
2006-01-10 Kristian Høgsberg <krh@redhat.com>
* configure.ac: Bump realease to 0.4.4.
* NEWS: Sum up changes.
* poppler/DCTStream.cc: Backport patch for KDE #119569.
2006-01-10 Kristian Høgsberg <krh@redhat.com>
Security patch from Martin Pitt (#5516). Multiple integer/buffer
......
Release 0.4.4
- Security update; CVE-2005-3624, CVE-2005-3625, CVE-2005-3627.
- Fix KDE bug #119569, endless loop in jpeg decoder.
Release 0.4.3
- Fix selection crasher (Nickolay V. Shmyrev, #4402).
......
......@@ -113,7 +113,7 @@ dnl Based on kde acinclude.m4.in, LGPL Licensed
AC_PREREQ(2.59)
AC_INIT(poppler, 0.4.3)
AC_INIT(poppler, 0.4.4)
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
AM_CONFIG_HEADER(config.h)
AM_CONFIG_HEADER(poppler/poppler-config.h)
......
......@@ -14,21 +14,25 @@ static void str_init_source(j_decompress_ptr cinfo)
static boolean str_fill_input_buffer(j_decompress_ptr cinfo)
{
int c;
struct str_src_mgr * src = (struct str_src_mgr *)cinfo->src;
if (src->index == 0) {
src->buffer = 0xFF;
c = 0xFF;
src->index++;
}
else if (src->index == 1) {
src->buffer = 0xD8;
c = 0xD8;
src->index++;
}
else {
src->buffer = src->str->getChar();
else c = src->str->getChar();
if (c != EOF)
{
src->buffer = c;
src->pub.next_input_byte = &src->buffer;
src->pub.bytes_in_buffer = 1;
return TRUE;
}
src->pub.next_input_byte = &src->buffer;
src->pub.bytes_in_buffer = 1;
return TRUE;
else return FALSE;
}
static void str_skip_input_data(j_decompress_ptr cinfo, long num_bytes)
......@@ -83,18 +87,17 @@ void DCTStream::reset() {
// the start marker...
bool startFound = false;
int c = 0, c2 = 0;
int n = 0;
while (!startFound)
{
if (!c)
{
c = str->getChar();
if (c != 0xFF) c = 0;
if (c == -1)
{
error(-1, "Could not find start of jpeg data");
exit(1);
}
if (c != 0xFF) c = 0;
}
else
{
......@@ -106,7 +109,6 @@ void DCTStream::reset() {
}
else startFound = true;
}
n++;
}
jpeg_read_header(&cinfo, TRUE);
......@@ -121,7 +123,9 @@ int DCTStream::getChar() {
if (x == 0) {
if (cinfo.output_scanline < cinfo.output_height)
jpeg_read_scanlines(&cinfo, row_buffer, 1);
{
if (!jpeg_read_scanlines(&cinfo, row_buffer, 1)) return EOF;
}
else return EOF;
}
c = row_buffer[0][x];
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment