[Libreoffice-commits] libmspub.git: 6 commits - configure.ac src/conv src/fuzz src/lib src/Makefile.am
David Tardon
dtardon at redhat.com
Mon Mar 13 18:31:00 UTC 2017
configure.ac | 19 ++++++++++++++++---
src/Makefile.am | 4 ++++
src/conv/raw/Makefile.am | 7 +------
src/conv/svg/Makefile.am | 7 +------
src/fuzz/.gitignore | 8 ++++++++
src/fuzz/Makefile.am | 17 +++++++++++++++++
src/fuzz/pubfuzz.cpp | 27 +++++++++++++++++++++++++++
src/lib/MSPUBParser97.cpp | 7 ++++---
8 files changed, 78 insertions(+), 18 deletions(-)
New commits:
commit 5655d4ec140544d4144e6b7e144c98d6351b8471
Author: David Tardon <dtardon at redhat.com>
Date: Mon Mar 13 19:29:29 2017 +0100
avoid memory leak
Change-Id: Iae40d0f17597997d4c44eff0745ca7bbd895856e
diff --git a/src/lib/MSPUBParser97.cpp b/src/lib/MSPUBParser97.cpp
index 2d717e1..ec99ca2 100644
--- a/src/lib/MSPUBParser97.cpp
+++ b/src/lib/MSPUBParser97.cpp
@@ -11,6 +11,8 @@
#include <utility>
+#include <boost/scoped_ptr.hpp>
+
#include "MSPUBCollector.h"
#include "libmspub_utils.h"
#include "MSPUBTypes.h"
@@ -36,16 +38,15 @@ unsigned MSPUBParser97::getTextIdOffset() const
bool MSPUBParser97::parse()
{
- librevenge::RVNGInputStream *contents = m_input->getSubStreamByName("Contents");
+ boost::scoped_ptr<librevenge::RVNGInputStream> contents(m_input->getSubStreamByName("Contents"));
if (!contents)
{
MSPUB_DEBUG_MSG(("Couldn't get contents stream.\n"));
return false;
}
- if (!parseContents(contents))
+ if (!parseContents(contents.get()))
{
MSPUB_DEBUG_MSG(("Couldn't parse contents stream.\n"));
- delete contents;
return false;
}
return m_collector->go();
commit 387fc64586e289ccd972bd6710c4c368b497ef35
Author: David Tardon <dtardon at redhat.com>
Date: Mon Mar 13 19:24:40 2017 +0100
the condition is checked in parent makefile
Change-Id: I536dc323280f9ac743850e92ce010b1f06e35c3e
diff --git a/src/conv/raw/Makefile.am b/src/conv/raw/Makefile.am
index 4e4cada..1184461 100644
--- a/src/conv/raw/Makefile.am
+++ b/src/conv/raw/Makefile.am
@@ -1,5 +1,3 @@
-if BUILD_TOOLS
-
bin_PROGRAMS = pub2raw
AM_CXXFLAGS = -I$(top_srcdir)/inc \
@@ -33,5 +31,3 @@ EXTRA_DIST = \
# These may be in the builddir too
BUILD_EXTRA_DIST = \
pub2raw.rc
-
-endif # BUILD_TOOLS
diff --git a/src/conv/svg/Makefile.am b/src/conv/svg/Makefile.am
index d9ad4da..07fe792 100644
--- a/src/conv/svg/Makefile.am
+++ b/src/conv/svg/Makefile.am
@@ -1,5 +1,3 @@
-if BUILD_TOOLS
-
bin_PROGRAMS = pub2xhtml
AM_CXXFLAGS = -I$(top_srcdir)/inc \
@@ -31,5 +29,3 @@ EXTRA_DIST = \
# These may be in the builddir too
BUILD_EXTRA_DIST = \
pub2xhtml.rc
-
-endif # BUILD_TOOLS
commit b52e8163973198459fea6e0c73fb16aec66308f3
Author: David Tardon <dtardon at redhat.com>
Date: Mon Mar 13 19:24:08 2017 +0100
sources of bin targets are distributed automatically
Change-Id: I47cdb009f08f951b8662d7735bbeefbda361e93f
diff --git a/src/conv/raw/Makefile.am b/src/conv/raw/Makefile.am
index cd45f78..4e4cada 100644
--- a/src/conv/raw/Makefile.am
+++ b/src/conv/raw/Makefile.am
@@ -28,7 +28,6 @@ if OS_WIN32
endif
EXTRA_DIST = \
- $(pub2raw_SOURCES) \
pub2raw.rc.in
# These may be in the builddir too
diff --git a/src/conv/svg/Makefile.am b/src/conv/svg/Makefile.am
index 693f97f..d9ad4da 100644
--- a/src/conv/svg/Makefile.am
+++ b/src/conv/svg/Makefile.am
@@ -26,7 +26,6 @@ if OS_WIN32
endif
EXTRA_DIST = \
- $(pub2xhtml_SOURCES) \
pub2xhtml.rc.in
# These may be in the builddir too
commit 684eeaaa4855269057d08295a70e5c64f08c91c1
Author: David Tardon <dtardon at redhat.com>
Date: Mon Mar 13 19:22:25 2017 +0100
do not hardcode relative path to the lib
Change-Id: I43f826b9064f270ed825cba265480ebb760b4cd5
diff --git a/src/conv/raw/Makefile.am b/src/conv/raw/Makefile.am
index 6ac2242..cd45f78 100644
--- a/src/conv/raw/Makefile.am
+++ b/src/conv/raw/Makefile.am
@@ -11,7 +11,7 @@ AM_CXXFLAGS = -I$(top_srcdir)/inc \
pub2raw_DEPENDENCIES = @PUB2RAW_WIN32_RESOURCE@
pub2raw_LDADD = \
- ../../lib/libmspub- at MSPUB_MAJOR_VERSION@. at MSPUB_MINOR_VERSION@.la \
+ $(top_builddir)/src/lib/libmspub- at MSPUB_MAJOR_VERSION@. at MSPUB_MINOR_VERSION@.la \
$(REVENGE_GENERATORS_LIBS) \
$(REVENGE_LIBS) \
$(REVENGE_STREAM_LIBS) \
diff --git a/src/conv/svg/Makefile.am b/src/conv/svg/Makefile.am
index e0406a0..693f97f 100644
--- a/src/conv/svg/Makefile.am
+++ b/src/conv/svg/Makefile.am
@@ -10,7 +10,7 @@ AM_CXXFLAGS = -I$(top_srcdir)/inc \
pub2xhtml_DEPENDENCIES = @PUB2XHTML_WIN32_RESOURCE@
pub2xhtml_LDADD = \
- ../../lib/libmspub- at MSPUB_MAJOR_VERSION@. at MSPUB_MINOR_VERSION@.la \
+ $(top_builddir)/src/lib/libmspub- at MSPUB_MAJOR_VERSION@. at MSPUB_MINOR_VERSION@.la \
$(REVENGE_LIBS) \
$(REVENGE_STREAM_LIBS) \
@PUB2XHTML_WIN32_RESOURCE@
commit 361e7964fd6fd93884663cb00c1bc1731f91c576
Author: David Tardon <dtardon at redhat.com>
Date: Mon Mar 13 19:19:41 2017 +0100
update configure summary
Change-Id: I2709e85ab0ff9059af51fadc33f8ecffc9e3c00d
diff --git a/configure.ac b/configure.ac
index d2abe3d..2242f4d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -337,7 +337,7 @@ Build configuration:
debug: ${enable_debug}
docs: ${build_docs}
fuzzers: ${enable_fuzzers}
- static-tools: ${enable_static_tools}
+ tools: ${enable_tools}
werror: ${enable_werror}
==============================================================================
])
commit da0ac88039262a6dc7a2bbee329e37a7a23e39f6
Author: David Tardon <dtardon at redhat.com>
Date: Mon Mar 13 19:05:56 2017 +0100
create a fuzzing driver for oss-fuzz
Change-Id: I7636a01885615c109865da923b03682c77e3220d
diff --git a/configure.ac b/configure.ac
index 7bd436c..d2abe3d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -52,7 +52,19 @@ AC_ARG_ENABLE([tools],
[enable_tools="$enableval"],
[enable_tools=yes]
)
-AS_IF([test "x$enable_tools" = "xyes"], [
+AM_CONDITIONAL(BUILD_TOOLS, [test "x$enable_tools" = "xyes"])
+
+# =======
+# Fuzzers
+# =======
+AC_ARG_ENABLE([fuzzers],
+ [AS_HELP_STRING([--disable-fuzzers], [Build fuzzer(s)])],
+ [enable_fuzzers="$enableval"],
+ [enable_fuzzers=no]
+)
+AM_CONDITIONAL(BUILD_FUZZERS, [test "x$enable_fuzzers" = "xyes"])
+
+AS_IF([test "x$enable_tools" = "xyes" -o "x$enable_fuzzers" = "xyes"], [
PKG_CHECK_MODULES([REVENGE_STREAM],[
librevenge-stream-0.0
])
@@ -64,7 +76,6 @@ AC_SUBST([REVENGE_STREAM_CFLAGS])
AC_SUBST([REVENGE_STREAM_LIBS])
AC_SUBST([REVENGE_GENERATORS_CFLAGS])
AC_SUBST([REVENGE_GENERATORS_LIBS])
-AM_CONDITIONAL(BUILD_TOOLS, [test "x$enable_tools" = "xyes"])
# =========
# Find zlib
@@ -304,6 +315,7 @@ src/conv/raw/Makefile
src/conv/raw/pub2raw.rc
src/conv/svg/Makefile
src/conv/svg/pub2xhtml.rc
+src/fuzz/Makefile
src/lib/Makefile
src/lib/libmspub.rc
inc/Makefile
@@ -324,6 +336,7 @@ AC_MSG_NOTICE([
Build configuration:
debug: ${enable_debug}
docs: ${build_docs}
+ fuzzers: ${enable_fuzzers}
static-tools: ${enable_static_tools}
werror: ${enable_werror}
==============================================================================
diff --git a/src/Makefile.am b/src/Makefile.am
index 64fd45e..c83c78c 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,3 +3,7 @@ SUBDIRS = lib
if BUILD_TOOLS
SUBDIRS += conv
endif
+
+if BUILD_FUZZERS
+SUBDIRS += fuzz
+endif
diff --git a/src/fuzz/.gitignore b/src/fuzz/.gitignore
new file mode 100644
index 0000000..f44c6ed
--- /dev/null
+++ b/src/fuzz/.gitignore
@@ -0,0 +1,8 @@
+.deps
+.libs
+*.lo
+*.la
+*.o
+Makefile
+Makefile.in
+pubfuzz
diff --git a/src/fuzz/Makefile.am b/src/fuzz/Makefile.am
new file mode 100644
index 0000000..61b3902
--- /dev/null
+++ b/src/fuzz/Makefile.am
@@ -0,0 +1,17 @@
+bin_PROGRAMS = pubfuzz
+
+AM_CXXFLAGS = -I$(top_srcdir)/inc \
+ $(REVENGE_GENERATORS_CFLAGS) \
+ $(REVENGE_CFLAGS) \
+ $(REVENGE_STREAM_LIBS) \
+ $(DEBUG_CXXFLAGS)
+
+pubfuzz_LDADD = \
+ $(top_builddir)/src/lib/libmspub- at MSPUB_MAJOR_VERSION@. at MSPUB_MINOR_VERSION@.la \
+ $(REVENGE_GENERATORS_LIBS) \
+ $(REVENGE_LIBS) \
+ $(REVENGE_STREAM_LIBS) \
+ -lFuzzingEngine
+
+pubfuzz_SOURCES = \
+ pubfuzz.cpp
diff --git a/src/fuzz/pubfuzz.cpp b/src/fuzz/pubfuzz.cpp
new file mode 100644
index 0000000..7a9ab5f
--- /dev/null
+++ b/src/fuzz/pubfuzz.cpp
@@ -0,0 +1,27 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/*
+ * This file is part of the libmspub project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <algorithm>
+#include <cstdint>
+
+#include <libmspub/libmspub.h>
+
+#include <librevenge-generators/librevenge-generators.h>
+
+#include <librevenge-stream/librevenge-stream.h>
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
+{
+ librevenge::RVNGStringStream input(data, size);
+ librevenge::RVNGRawDrawingGenerator generator(true);
+ libmspub::MSPUBDocument::parse(&input, &generator);
+ return 0;
+}
+
+/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
More information about the Libreoffice-commits
mailing list