update to djvulibre-3.5.28
OK rsadowski@
This commit is contained in:
parent
9868e0bf65
commit
7f868fffbd
@ -1,10 +1,9 @@
|
||||
# $OpenBSD: Makefile,v 1.45 2019/07/12 20:46:57 sthen Exp $
|
||||
# $OpenBSD: Makefile,v 1.46 2021/10/20 16:31:58 mbuhl Exp $
|
||||
|
||||
COMMENT= view, decode and encode DjVu files
|
||||
|
||||
DISTNAME= djvulibre-3.5.27
|
||||
REVISION= 6
|
||||
SHARED_LIBS= djvulibre 26.0 # 27.0
|
||||
DISTNAME= djvulibre-3.5.28
|
||||
SHARED_LIBS= djvulibre 27.0 # 28.0
|
||||
CATEGORIES= graphics print
|
||||
|
||||
HOMEPAGE= http://djvu.sourceforge.net/
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (djvulibre-3.5.27.tar.gz) = 5pZoJSVlYDh1+4hQDN4Cv5PRLUijiE5HJpbIlugfUF8=
|
||||
SIZE (djvulibre-3.5.27.tar.gz) = 3648522
|
||||
SHA256 (djvulibre-3.5.28.tar.gz) = /NAJ6nZU/eWoNgDrgHV706dpmOR9E8ZrVMjbhJ+PLtw=
|
||||
SIZE (djvulibre-3.5.28.tar.gz) = 3701161
|
||||
|
@ -1,7 +1,8 @@
|
||||
$OpenBSD: patch-configure_ac,v 1.2 2015/05/12 16:10:27 shadchin Exp $
|
||||
--- configure.ac.orig Sun Mar 29 10:30:55 2015
|
||||
+++ configure.ac Sun Mar 29 10:31:17 2015
|
||||
@@ -129,7 +129,6 @@ RM="$RM -f"
|
||||
$OpenBSD: patch-configure_ac,v 1.3 2021/10/20 16:31:58 mbuhl Exp $
|
||||
Index: configure.ac
|
||||
--- configure.ac.orig
|
||||
+++ configure.ac
|
||||
@@ -131,7 +131,6 @@ RM="$RM -f"
|
||||
# Libtool & Compilers
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
|
18
graphics/djvulibre/patches/patch-libdjvu_DataPool_cpp
Normal file
18
graphics/djvulibre/patches/patch-libdjvu_DataPool_cpp
Normal file
@ -0,0 +1,18 @@
|
||||
$OpenBSD: patch-libdjvu_DataPool_cpp,v 1.1 2021/10/20 16:31:58 mbuhl Exp $
|
||||
|
||||
Fix CVE-2021-32492: Out-of-Bounds Read
|
||||
https://sourceforge.net/p/djvu/djvulibre-git/ci/cd8b5c97b27a5c1dc83046498b6ca49ad20aa9b6
|
||||
|
||||
Index: libdjvu/DataPool.cpp
|
||||
--- libdjvu/DataPool.cpp.orig
|
||||
+++ libdjvu/DataPool.cpp
|
||||
@@ -791,6 +791,9 @@ DataPool::create(const GP<DataPool> & pool, int start,
|
||||
DEBUG_MSG("DataPool::DataPool: pool=" << (void *)((DataPool *)pool) << " start=" << start << " length= " << length << "\n");
|
||||
DEBUG_MAKE_INDENT(3);
|
||||
|
||||
+ if (!pool)
|
||||
+ G_THROW( ERR_MSG("DataPool.zero_DataPool") );
|
||||
+
|
||||
DataPool *xpool=new DataPool();
|
||||
GP<DataPool> retval=xpool;
|
||||
xpool->init();
|
@ -1,94 +0,0 @@
|
||||
$OpenBSD: patch-libdjvu_DjVmDir_cpp,v 1.1 2016/03/02 20:10:36 juanfra Exp $
|
||||
|
||||
"accept documents with duplicate page titles"
|
||||
|
||||
http://sourceforge.net/p/djvu/djvulibre-git/ci/77a4dca8dd3acd0acc1680fa14a352c11084e25d/
|
||||
https://bitbucket.org/jwilk/pdf2djvu/issues/113/duplicate-page-title-1
|
||||
|
||||
--- libdjvu/DjVmDir.cpp.orig Tue Jul 8 23:15:07 2014
|
||||
+++ libdjvu/DjVmDir.cpp Wed Feb 3 01:51:28 2016
|
||||
@@ -223,7 +223,6 @@ DjVmDir::decode(const GP<ByteStream> &gstr)
|
||||
page2file.resize(-1);
|
||||
name2file.empty();
|
||||
id2file.empty();
|
||||
- title2file.empty();
|
||||
|
||||
int ver=str.read8();
|
||||
bool bundled=(ver & 0x80)!=0;
|
||||
@@ -375,18 +374,6 @@ DjVmDir::decode(const GP<ByteStream> &gstr)
|
||||
G_THROW( ERR_MSG("DjVmDir.dupl_id") "\t" + file->id);
|
||||
id2file[file->id]=file;
|
||||
}
|
||||
-
|
||||
- // Generate title2file map
|
||||
- for(pos=files_list;pos;++pos)
|
||||
- {
|
||||
- GP<File> file=files_list[pos];
|
||||
- if (file->title.length())
|
||||
- {
|
||||
- if (title2file.contains(file->title))
|
||||
- G_THROW( ERR_MSG("DjVmDir.dupl_title") "\t" + file->title);
|
||||
- title2file[file->title]=file;
|
||||
- }
|
||||
- }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -556,11 +543,19 @@ DjVmDir::id_to_file(const GUTF8String &id) const
|
||||
}
|
||||
|
||||
GP<DjVmDir::File>
|
||||
-DjVmDir::title_to_file(const GUTF8String &title) const
|
||||
+DjVmDir::title_to_file(const GUTF8String &title, GPosition spos) const
|
||||
{
|
||||
- GCriticalSectionLock lock((GCriticalSection *) &class_lock);
|
||||
- GPosition pos;
|
||||
- return (title2file.contains(title, pos))?title2file[pos]:(GP<DjVmDir::File>(0));
|
||||
+ if (! title)
|
||||
+ return 0;
|
||||
+ GCriticalSectionLock lock((GCriticalSection *) &class_lock);
|
||||
+ if (! spos)
|
||||
+ for (GPosition pos = spos; pos; ++pos)
|
||||
+ if (files_list[pos]->is_page() && files_list[pos]->title == title)
|
||||
+ return files_list[pos];
|
||||
+ for (GPosition pos = files_list; pos; ++pos)
|
||||
+ if (files_list[pos]->is_page() && files_list[pos]->title == title)
|
||||
+ return files_list[pos];
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
GP<DjVmDir::File>
|
||||
@@ -661,14 +656,7 @@ DjVmDir::insert_file(const GP<File> & file, int pos_nu
|
||||
G_THROW( ERR_MSG("DjVmDir.dupl_name2") "\t" + file->name);
|
||||
name2file[file->name]=file;
|
||||
id2file[file->id]=file;
|
||||
- if (file->title.length())
|
||||
- {
|
||||
- if (title2file.contains(file->title))
|
||||
- // duplicate titles may become ok some day
|
||||
- G_THROW( ERR_MSG("DjVmDir.dupl_title2") "\t" + file->title);
|
||||
- title2file[file->title]=file;
|
||||
- }
|
||||
-
|
||||
+
|
||||
// Make sure that there is no more than one file with shared annotations
|
||||
if (file->is_shared_anno())
|
||||
{
|
||||
@@ -727,7 +715,6 @@ DjVmDir::delete_file(const GUTF8String &id)
|
||||
{
|
||||
name2file.del(f->name);
|
||||
id2file.del(f->id);
|
||||
- title2file.del(f->title);
|
||||
if (f->is_page())
|
||||
{
|
||||
for(int page=0;page<page2file.size();page++)
|
||||
@@ -788,9 +775,7 @@ DjVmDir::set_file_title(const GUTF8String &id, const G
|
||||
if (!id2file.contains(id, pos))
|
||||
G_THROW( ERR_MSG("DjVmDir.no_info") "\t" + GUTF8String(id));
|
||||
GP<File> file=id2file[pos];
|
||||
- title2file.del(file->title);
|
||||
file->title=title;
|
||||
- title2file[title]=file;
|
||||
}
|
||||
|
||||
GPList<DjVmDir::File>
|
@ -1,41 +0,0 @@
|
||||
$OpenBSD: patch-libdjvu_DjVmDir_h,v 1.1 2016/03/02 20:10:36 juanfra Exp $
|
||||
|
||||
"accept documents with duplicate page titles"
|
||||
|
||||
http://sourceforge.net/p/djvu/djvulibre-git/ci/77a4dca8dd3acd0acc1680fa14a352c11084e25d/
|
||||
https://bitbucket.org/jwilk/pdf2djvu/issues/113/duplicate-page-title-1
|
||||
|
||||
--- libdjvu/DjVmDir.h.orig Tue Jul 8 23:15:07 2014
|
||||
+++ libdjvu/DjVmDir.h Wed Feb 3 01:51:28 2016
|
||||
@@ -181,7 +181,8 @@ class DJVUAPI DjVmDir : public GPEnabled (public)
|
||||
/** Translates file IDs to file records. */
|
||||
GP<File> id_to_file(const GUTF8String &id) const;
|
||||
/** Translates file shortcuts to file records. */
|
||||
- GP<File> title_to_file(const GUTF8String &title) const;
|
||||
+ GP<File> title_to_file(const GUTF8String &title, GPosition spos) const;
|
||||
+ GP<File> title_to_file(const GUTF8String &title) const;
|
||||
/** Access file record by position. */
|
||||
GP<File> pos_to_file(int fileno, int *ppageno=0) const;
|
||||
/** Returns position of the file in the directory. */
|
||||
@@ -216,7 +217,6 @@ class DJVUAPI DjVmDir : public GPEnabled (public)
|
||||
GPArray<File> page2file;
|
||||
GPMap<GUTF8String, File> name2file;
|
||||
GPMap<GUTF8String, File> id2file;
|
||||
- GPMap<GUTF8String, File> title2file;
|
||||
private: //dummy stuff
|
||||
static void decode(ByteStream *);
|
||||
static void encode(ByteStream *);
|
||||
@@ -438,6 +438,13 @@ DjVmDir::is_indirect(void) const
|
||||
GCriticalSectionLock lock((GCriticalSection *) &class_lock);
|
||||
return ( files_list.size() && files_list[files_list] != 0 &&
|
||||
files_list[files_list]->offset==0 );
|
||||
+}
|
||||
+
|
||||
+inline GP<DjVmDir::File>
|
||||
+DjVmDir::title_to_file(const GUTF8String &title) const
|
||||
+{
|
||||
+ GPosition pos;
|
||||
+ return title_to_file(title, pos);
|
||||
}
|
||||
|
||||
|
@ -1,37 +0,0 @@
|
||||
$OpenBSD: patch-libdjvu_DjVuDocument_cpp,v 1.1 2016/03/02 20:10:36 juanfra Exp $
|
||||
|
||||
"accept documents with duplicate page titles"
|
||||
|
||||
http://sourceforge.net/p/djvu/djvulibre-git/ci/77a4dca8dd3acd0acc1680fa14a352c11084e25d/
|
||||
https://bitbucket.org/jwilk/pdf2djvu/issues/113/duplicate-page-title-1
|
||||
|
||||
--- libdjvu/DjVuDocument.cpp.orig Mon Sep 22 00:06:03 2014
|
||||
+++ libdjvu/DjVuDocument.cpp Wed Feb 3 01:51:28 2016
|
||||
@@ -805,11 +805,9 @@ DjVuDocument::id_to_url(const GUTF8String & id) const
|
||||
{
|
||||
GP<DjVmDir::File> file=djvm_dir->id_to_file(id);
|
||||
if (!file)
|
||||
- {
|
||||
file=djvm_dir->name_to_file(id);
|
||||
- if (!file)
|
||||
- file=djvm_dir->title_to_file(id);
|
||||
- }
|
||||
+ if (!file)
|
||||
+ file=djvm_dir->title_to_file(id);
|
||||
if (file)
|
||||
return GURL::UTF8(file->get_load_name(),init_url);
|
||||
}
|
||||
@@ -819,11 +817,9 @@ DjVuDocument::id_to_url(const GUTF8String & id) const
|
||||
{
|
||||
GP<DjVmDir::File> file=djvm_dir->id_to_file(id);
|
||||
if (!file)
|
||||
- {
|
||||
file=djvm_dir->name_to_file(id);
|
||||
- if (!file)
|
||||
- file=djvm_dir->title_to_file(id);
|
||||
- }
|
||||
+ if (!file)
|
||||
+ file=djvm_dir->title_to_file(id);
|
||||
if (file)
|
||||
return GURL::UTF8(file->get_load_name(),init_url.base());
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
$OpenBSD: patch-libdjvu_DjVuDocument_h,v 1.1 2016/03/02 20:10:36 juanfra Exp $
|
||||
|
||||
"accept documents with duplicate page titles"
|
||||
|
||||
http://sourceforge.net/p/djvu/djvulibre-git/ci/77a4dca8dd3acd0acc1680fa14a352c11084e25d/
|
||||
https://bitbucket.org/jwilk/pdf2djvu/issues/113/duplicate-page-title-1
|
||||
|
||||
--- libdjvu/DjVuDocument.h.orig Tue Jul 8 23:15:07 2014
|
||||
+++ libdjvu/DjVuDocument.h Wed Feb 3 01:51:28 2016
|
||||
@@ -524,7 +524,6 @@ class DJVUAPI DjVuDocument : public DjVuPort (public)
|
||||
\begin{enumerate}
|
||||
\item File ID from the \Ref{DjVmDir}
|
||||
\item File name from the \Ref{DjVmDir}
|
||||
- \item File title from the \Ref{DjVmDir}
|
||||
\end{enumerate}
|
||||
Then for #BUNDLED# document the URL is obtained by
|
||||
appending the #name# of the found file to the document's
|
16
graphics/djvulibre/patches/patch-libdjvu_DjVuFile_cpp
Normal file
16
graphics/djvulibre/patches/patch-libdjvu_DjVuFile_cpp
Normal file
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-libdjvu_DjVuFile_cpp,v 1.1 2021/10/20 16:31:58 mbuhl Exp $
|
||||
|
||||
https://sourceforge.net/p/djvu/djvulibre-git/ci/cd8b5c97b27a5c1dc83046498b6ca49ad20aa9b6
|
||||
|
||||
Index: libdjvu/DjVuFile.cpp
|
||||
--- libdjvu/DjVuFile.cpp.orig
|
||||
+++ libdjvu/DjVuFile.cpp
|
||||
@@ -576,6 +576,8 @@ DjVuFile::process_incl_chunk(ByteStream & str, int fil
|
||||
GURL incl_url=pcaster->id_to_url(this, incl_str);
|
||||
if (incl_url.is_empty()) // Fallback. Should never be used.
|
||||
incl_url=GURL::UTF8(incl_str,url.base());
|
||||
+ if (incl_url == url) // Infinite loop avoidance
|
||||
+ G_THROW( ERR_MSG("DjVuFile.malformed") );
|
||||
|
||||
// Now see if there is already a file with this *name* created
|
||||
{
|
@ -1,20 +0,0 @@
|
||||
$OpenBSD: patch-libdjvu_DjVuMessageLite_h,v 1.1 2016/03/02 20:10:36 juanfra Exp $
|
||||
|
||||
"accept documents with duplicate page titles"
|
||||
|
||||
http://sourceforge.net/p/djvu/djvulibre-git/ci/77a4dca8dd3acd0acc1680fa14a352c11084e25d/
|
||||
https://bitbucket.org/jwilk/pdf2djvu/issues/113/duplicate-page-title-1
|
||||
|
||||
--- libdjvu/DjVuMessageLite.h.orig Tue Jul 8 23:15:07 2014
|
||||
+++ libdjvu/DjVuMessageLite.h Wed Feb 3 01:51:28 2016
|
||||
@@ -89,8 +89,8 @@ class ByteStream;
|
||||
separator ::= newline |
|
||||
newline | separator
|
||||
|
||||
- single_message ::= message_ID |
|
||||
- message_ID parameters
|
||||
+ single_message ::= CTRLC message_ID |
|
||||
+ CTRLC message_ID parameters
|
||||
|
||||
parameters ::= tab string |
|
||||
tab string parameters
|
@ -1,11 +1,12 @@
|
||||
$OpenBSD: patch-libdjvu_DjVuPalette_cpp,v 1.1 2017/04/20 01:40:33 espie Exp $
|
||||
--- libdjvu/DjVuPalette.cpp.orig Thu Apr 20 03:30:12 2017
|
||||
+++ libdjvu/DjVuPalette.cpp Thu Apr 20 03:38:11 2017
|
||||
@@ -98,6 +98,7 @@ inline unsigned char
|
||||
$OpenBSD: patch-libdjvu_DjVuPalette_cpp,v 1.2 2021/10/20 16:31:58 mbuhl Exp $
|
||||
Index: libdjvu/DjVuPalette.cpp
|
||||
--- libdjvu/DjVuPalette.cpp.orig
|
||||
+++ libdjvu/DjVuPalette.cpp
|
||||
@@ -99,6 +99,7 @@ inline unsigned char
|
||||
umin(unsigned char a, unsigned char b)
|
||||
{ return (a>b) ? b : a; }
|
||||
|
||||
+#define fmin myfmin
|
||||
inline float
|
||||
fmin(float a, float b)
|
||||
fmin(float a, float b)
|
||||
{ return (a>b) ? b : a; }
|
||||
|
28
graphics/djvulibre/patches/patch-libdjvu_DjVuPort_cpp
Normal file
28
graphics/djvulibre/patches/patch-libdjvu_DjVuPort_cpp
Normal file
@ -0,0 +1,28 @@
|
||||
$OpenBSD: patch-libdjvu_DjVuPort_cpp,v 1.1 2021/10/20 16:31:58 mbuhl Exp $
|
||||
|
||||
Fix CVE-2021-3500: Stack-Based Buffer Overflow
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1943411
|
||||
|
||||
Index: libdjvu/DjVuPort.cpp
|
||||
--- libdjvu/DjVuPort.cpp.orig
|
||||
+++ libdjvu/DjVuPort.cpp
|
||||
@@ -507,10 +507,19 @@ GP<DjVuFile>
|
||||
DjVuPortcaster::id_to_file(const DjVuPort * source, const GUTF8String &id)
|
||||
{
|
||||
GPList<DjVuPort> list;
|
||||
+
|
||||
+ if (!!opening_id && opening_id == id)
|
||||
+ G_THROW( ERR_MSG("DjVuPortcaster.recursive_open") );
|
||||
+ else
|
||||
+ opening_id = id;
|
||||
+
|
||||
compute_closure(source, list, true);
|
||||
GP<DjVuFile> file;
|
||||
for(GPosition pos=list;pos;++pos)
|
||||
if ((file=list[pos]->id_to_file(source, id))) break;
|
||||
+
|
||||
+ opening_id = GUTF8String();
|
||||
+
|
||||
return file;
|
||||
}
|
||||
|
16
graphics/djvulibre/patches/patch-libdjvu_DjVuPort_h
Normal file
16
graphics/djvulibre/patches/patch-libdjvu_DjVuPort_h
Normal file
@ -0,0 +1,16 @@
|
||||
$OpenBSD: patch-libdjvu_DjVuPort_h,v 1.1 2021/10/20 16:31:58 mbuhl Exp $
|
||||
|
||||
Fix CVE-2021-3500: Stack-Based Buffer Overflow
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1943411
|
||||
|
||||
Index: libdjvu/DjVuPort.h
|
||||
--- libdjvu/DjVuPort.h.orig
|
||||
+++ libdjvu/DjVuPort.h
|
||||
@@ -484,6 +484,7 @@ class DJVUAPI DjVuPortcaster (private)
|
||||
const DjVuPort *dst, int distance);
|
||||
void compute_closure(const DjVuPort *src, GPList<DjVuPort> &list,
|
||||
bool sorted=false);
|
||||
+ GUTF8String opening_id;
|
||||
};
|
||||
|
||||
|
17
graphics/djvulibre/patches/patch-libdjvu_GBitmap_cpp
Normal file
17
graphics/djvulibre/patches/patch-libdjvu_GBitmap_cpp
Normal file
@ -0,0 +1,17 @@
|
||||
$OpenBSD: patch-libdjvu_GBitmap_cpp,v 1.1 2021/10/20 16:31:58 mbuhl Exp $
|
||||
|
||||
Fix CVE-2021-32493: Integer Overflow Leading to Heap Buffer Overflow
|
||||
https://sourceforge.net/p/djvu/djvulibre-git/ci/cd8b5c97b27a5c1dc83046498b6ca49ad20aa9b6
|
||||
|
||||
Index: libdjvu/GBitmap.cpp
|
||||
--- libdjvu/GBitmap.cpp.orig
|
||||
+++ libdjvu/GBitmap.cpp
|
||||
@@ -1284,6 +1284,8 @@ GBitmap::decode(unsigned char *runs)
|
||||
// initialize pixel array
|
||||
if (nrows==0 || ncolumns==0)
|
||||
G_THROW( ERR_MSG("GBitmap.not_init") );
|
||||
+ if (ncolumns + border != (unsigned short)(ncolumns+border))
|
||||
+ G_THROW("GBitmap: image size exceeds maximum (corrupted file?)");
|
||||
bytes_per_row = ncolumns + border;
|
||||
if (runs==0)
|
||||
G_THROW( ERR_MSG("GBitmap.null_arg") );
|
22
graphics/djvulibre/patches/patch-libdjvu_IW44Image_cpp
Normal file
22
graphics/djvulibre/patches/patch-libdjvu_IW44Image_cpp
Normal file
@ -0,0 +1,22 @@
|
||||
$OpenBSD: patch-libdjvu_IW44Image_cpp,v 1.1 2021/10/20 16:31:58 mbuhl Exp $
|
||||
|
||||
Fix CVE-2021-32490: out of bounds write
|
||||
https://sourceforge.net/p/djvu/djvulibre-git/ci/cd8b5c97b27a5c1dc83046498b6ca49ad20aa9b6
|
||||
|
||||
Index: libdjvu/IW44Image.cpp
|
||||
--- libdjvu/IW44Image.cpp.orig
|
||||
+++ libdjvu/IW44Image.cpp
|
||||
@@ -676,9 +676,13 @@ IW44Image::Map::image(signed char *img8, int rowsize,
|
||||
// Allocate reconstruction buffer
|
||||
short *data16;
|
||||
size_t sz = bw * bh;
|
||||
+ if (sz == 0)
|
||||
+ G_THROW("IW44Image: image size is zero (corrupted file?)");
|
||||
if (sz / (size_t)bw != (size_t)bh) // multiplication overflow
|
||||
G_THROW("IW44Image: image size exceeds maximum (corrupted file?)");
|
||||
GPBuffer<short> gdata16(data16,sz);
|
||||
+ if (data16 == 0)
|
||||
+ G_THROW("IW44Image: unable to allocate image buffer");
|
||||
// Copy coefficients
|
||||
int i;
|
||||
short *p = data16;
|
@ -1,7 +1,8 @@
|
||||
$OpenBSD: patch-libdjvu_miniexp_cpp,v 1.2 2015/05/12 16:10:27 shadchin Exp $
|
||||
--- libdjvu/miniexp.cpp.orig Wed Feb 11 09:35:37 2015
|
||||
+++ libdjvu/miniexp.cpp Sat Mar 28 21:24:09 2015
|
||||
@@ -1241,7 +1241,7 @@ static int stdio_fputs(miniexp_io_t *io, const char *s
|
||||
$OpenBSD: patch-libdjvu_miniexp_cpp,v 1.3 2021/10/20 16:31:58 mbuhl Exp $
|
||||
Index: libdjvu/miniexp.cpp
|
||||
--- libdjvu/miniexp.cpp.orig
|
||||
+++ libdjvu/miniexp.cpp
|
||||
@@ -1300,7 +1300,7 @@ static int stdio_fputs(miniexp_io_t *io, const char *s
|
||||
|
||||
static int true_stdio_fgetc(miniexp_io_t *io) {
|
||||
FILE *f = (io->data[0]) ? (FILE*)(io->data[0]) : stdin;
|
||||
|
22
graphics/djvulibre/patches/patch-tools_ddjvu_cpp
Normal file
22
graphics/djvulibre/patches/patch-tools_ddjvu_cpp
Normal file
@ -0,0 +1,22 @@
|
||||
$OpenBSD: patch-tools_ddjvu_cpp,v 1.1 2021/10/20 16:31:58 mbuhl Exp $
|
||||
|
||||
Fix CVE-2021-32491: Integer Overflow Leading to Heap-Based Buffer Overflow
|
||||
https://sourceforge.net/p/djvu/djvulibre-git/ci/cd8b5c97b27a5c1dc83046498b6ca49ad20aa9b6
|
||||
|
||||
Index: tools/ddjvu.cpp
|
||||
--- tools/ddjvu.cpp.orig
|
||||
+++ tools/ddjvu.cpp
|
||||
@@ -393,8 +393,11 @@ render(ddjvu_page_t *page, int pageno)
|
||||
} else if (style == DDJVU_FORMAT_GREY8)
|
||||
rowsize = rrect.w;
|
||||
else
|
||||
- rowsize = rrect.w * 3;
|
||||
- if (! (image = (char*)malloc(rowsize * rrect.h)))
|
||||
+ rowsize = rrect.w * 3;
|
||||
+ size_t bufsize = (size_t)rowsize * rrect.h;
|
||||
+ if (bufsize / rowsize != rrect.h)
|
||||
+ die(i18n("Integer overflow when allocating image buffer for page %d"), pageno);
|
||||
+ if (! (image = (char*)malloc(bufsize)))
|
||||
die(i18n("Cannot allocate image buffer for page %d"), pageno);
|
||||
|
||||
/* Render */
|
@ -1,27 +0,0 @@
|
||||
$OpenBSD: patch-tools_djvused_cpp,v 1.1 2016/03/02 20:10:36 juanfra Exp $
|
||||
|
||||
"accept documents with duplicate page titles"
|
||||
|
||||
http://sourceforge.net/p/djvu/djvulibre-git/ci/77a4dca8dd3acd0acc1680fa14a352c11084e25d/
|
||||
https://bitbucket.org/jwilk/pdf2djvu/issues/113/duplicate-page-title-1
|
||||
|
||||
--- tools/djvused.cpp.orig Sun Feb 8 20:39:42 2015
|
||||
+++ tools/djvused.cpp Wed Feb 3 01:51:28 2016
|
||||
@@ -66,6 +66,7 @@
|
||||
#include "GString.h"
|
||||
#include "DjVuDocEditor.h"
|
||||
#include "DjVuDumpHelper.h"
|
||||
+#include "DjVuMessageLite.h"
|
||||
#include "BSByteStream.h"
|
||||
#include "DjVuText.h"
|
||||
#include "DjVuAnno.h"
|
||||
@@ -2315,7 +2316,8 @@ execute()
|
||||
G_CATCH(ex)
|
||||
{
|
||||
vprint("Error (%s): %s",
|
||||
- (const char*)ToNative(token), ex.get_cause());
|
||||
+ (const char*)ToNative(token),
|
||||
+ (const char *)DjVuMessageLite::LookUpUTF8(ex.get_cause()));
|
||||
if (! verbose)
|
||||
G_RETHROW;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
@comment $OpenBSD: PLIST,v 1.10 2018/07/01 18:33:36 espie Exp $
|
||||
@comment $OpenBSD: PLIST,v 1.11 2021/10/20 16:31:58 mbuhl Exp $
|
||||
@pkgpath graphics/djvulibre,no_x11
|
||||
@comment bin/any2djvu
|
||||
@bin bin/bzz
|
||||
@ -22,7 +22,7 @@
|
||||
include/libdjvu/
|
||||
include/libdjvu/ddjvuapi.h
|
||||
include/libdjvu/miniexp.h
|
||||
lib/libdjvulibre.a
|
||||
@static-lib lib/libdjvulibre.a
|
||||
lib/libdjvulibre.la
|
||||
@lib lib/libdjvulibre.so.${LIBdjvulibre_VERSION}
|
||||
lib/pkgconfig/ddjvuapi.pc
|
||||
@ -72,20 +72,19 @@ share/djvu/pubtext/
|
||||
share/djvu/pubtext/DjVuMessages.dtd
|
||||
share/djvu/pubtext/DjVuOCR.dtd
|
||||
share/djvu/pubtext/DjVuXML-s.dtd
|
||||
share/icons/hicolor/128x128/mimetypes/djvu.png
|
||||
share/icons/hicolor/16x16/mimetypes/djvu.png
|
||||
share/icons/hicolor/128x128/mimetypes/image-vnd.djvu.png
|
||||
share/icons/hicolor/16x16/mimetypes/image-vnd.djvu.png
|
||||
share/icons/hicolor/20x20/
|
||||
share/icons/hicolor/20x20/mimetypes/
|
||||
share/icons/hicolor/20x20/mimetypes/djvu.png
|
||||
share/icons/hicolor/22x22/mimetypes/djvu.png
|
||||
share/icons/hicolor/24x24/mimetypes/djvu.png
|
||||
share/icons/hicolor/256x256/mimetypes/djvu.png
|
||||
share/icons/hicolor/32x32/mimetypes/djvu.png
|
||||
share/icons/hicolor/48x48/mimetypes/djvu.png
|
||||
share/icons/hicolor/64x64/mimetypes/djvu.png
|
||||
share/icons/hicolor/72x72/mimetypes/djvu.png
|
||||
share/icons/hicolor/96x96/mimetypes/djvu.png
|
||||
share/icons/hicolor/scalable/mimetypes/djvu.svgz
|
||||
share/mime/packages/djvulibre-mime.xml
|
||||
@tag gtk-update-icon-cache %D/share/icons/hicolor
|
||||
@tag update-mime-database
|
||||
share/icons/hicolor/20x20/mimetypes/image-vnd.djvu.png
|
||||
share/icons/hicolor/22x22/mimetypes/image-vnd.djvu.png
|
||||
share/icons/hicolor/24x24/mimetypes/image-vnd.djvu.png
|
||||
share/icons/hicolor/256x256/mimetypes/image-vnd.djvu.png
|
||||
share/icons/hicolor/32x32/mimetypes/image-vnd.djvu.png
|
||||
share/icons/hicolor/48x48/mimetypes/image-vnd.djvu.png
|
||||
share/icons/hicolor/64x64/mimetypes/image-vnd.djvu.png
|
||||
share/icons/hicolor/72x72/mimetypes/image-vnd.djvu.png
|
||||
share/icons/hicolor/96x96/mimetypes/image-vnd.djvu.png
|
||||
share/icons/hicolor/scalable/mimetypes/image-vnd.djvu.svgz
|
||||
|
Loading…
Reference in New Issue
Block a user