summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore8
-rw-r--r--libpaper-covscan.patch16
-rw-r--r--libpaper-file-leak.patch22
-rw-r--r--libpaper.spec15
4 files changed, 61 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fc9aa8c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+clog
+package-*.xml
+*.tgz
+*.tar.gz
+*.tar.xz
+*.tar.xz.asc
+*.src.rpm
+*/*rpm
diff --git a/libpaper-covscan.patch b/libpaper-covscan.patch
new file mode 100644
index 0000000..43d0794
--- /dev/null
+++ b/libpaper-covscan.patch
@@ -0,0 +1,16 @@
+diff --git a/lib/paper.c b/lib/paper.c
+index 57db599..8817aea 100644
+--- a/lib/paper.c
++++ b/lib/paper.c
+@@ -211,7 +211,10 @@ PAPERSIZEVAR, fall-back to the old behaviour.
+ fclose(ps);
+
+ paperstr = malloc((strlen(papername) + 1) * sizeof(char));
+- if (! paperstr) return 0;
++ if (! paperstr) {
++ free(papername);
++ return 0;
++ }
+
+ strcpy(paperstr, papername);
+ free(papername);
diff --git a/libpaper-file-leak.patch b/libpaper-file-leak.patch
new file mode 100644
index 0000000..47b878b
--- /dev/null
+++ b/libpaper-file-leak.patch
@@ -0,0 +1,22 @@
+diff -up libpaper-1.1.24+nmu5/lib/paper.c.file-leak libpaper-1.1.24+nmu5/lib/paper.c
+--- libpaper-1.1.24+nmu5/lib/paper.c.file-leak 2018-03-09 16:21:01.028345956 +0100
++++ libpaper-1.1.24+nmu5/lib/paper.c 2018-03-09 16:40:57.824279357 +0100
+@@ -140,7 +140,7 @@ char* systempapername(void) {
+ char* paperstr;
+ char* paperenv;
+ const char* paperdef;
+- FILE* ps;
++ FILE* ps = NULL;
+ struct stat statbuf;
+ const struct paper* pp;
+ int c;
+@@ -224,6 +224,9 @@ PAPERSIZEVAR, fall-back to the old behav
+ }
+ }
+
++ if (ps)
++ fclose(ps);
++
+ paperdef = defaultpapername();
+ paperstr = malloc((strlen(paperdef) + 1) * sizeof(char));
+
diff --git a/libpaper.spec b/libpaper.spec
index 3c36ebd..2eb45be 100644
--- a/libpaper.spec
+++ b/libpaper.spec
@@ -17,6 +17,13 @@ Patch1: libpaper-1.1.23-debianbug475683.patch
# Filed upstream as:
# http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=481213
Patch2: libpaper-useglibcfallback.patch
+# Memory leak
+Patch3: libpaper-file-leak.patch
+# memory leak found by covscan, reported to debian upstream
+Patch4: libpaper-covscan.patch
+# gcc is no longer in buildroot by default
+BuildRequires: gcc
+
BuildRequires: libtool, gettext, gawk
%description
@@ -41,6 +48,8 @@ to develop applications which use libpaper.
%patch0 -p1 -b .automake110
%patch1 -p1 -b .dlfix
%patch2 -p1 -b .useglibcfallback
+%patch3 -p1 -b .file-leak
+%patch4 -p1 -b .covscan
libtoolize
%build
@@ -87,6 +96,12 @@ done
%{_mandir}/man3/*
%changelog
+* Wed Sep 25 2019 Remi Collet <remi@remirepo.net> -1.1.24-8
+- rebuild for remirepo for https://bugzilla.redhat.com/1753534
+ using patch from Fedora
+- fix covscan issue - memory leak
+- fix file descriptor leak
+
* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1.1.24-8
- Mass rebuild 2014-01-24