Accepting request 91368 from graphics
- Open all file descriptors with O_CLOEXEC, extended description in the patch file. OBS-URL: https://build.opensuse.org/request/show/91368 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libjpeg-turbo?expand=0&rev=9
This commit is contained in:
commit
604fd92534
94
libjpeg-ocloexec.patch
Normal file
94
libjpeg-ocloexec.patch
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
This patch causes libjpeg to open all files with O_CLOEXEC
|
||||||
|
the "e" fopen mode is a glibc/linux specific feature hence
|
||||||
|
not suitable for other OS.
|
||||||
|
|
||||||
|
Note that it is NOT HANDLED GRACEFULLY on kernels older than
|
||||||
|
2.6.23 or glibc < 2.7.x and WILL segfault.
|
||||||
|
|
||||||
|
The other alternative, using fcntl with FD_CLOEXEC is NOT
|
||||||
|
enough to prevent race conditions.
|
||||||
|
|
||||||
|
--- wrjpgcom.c.orig
|
||||||
|
+++ wrjpgcom.c
|
||||||
|
@@ -35,15 +35,15 @@ extern void * malloc ();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef DONT_USE_B_MODE /* define mode parameters for fopen() */
|
||||||
|
-#define READ_BINARY "r"
|
||||||
|
-#define WRITE_BINARY "w"
|
||||||
|
+#define READ_BINARY "re"
|
||||||
|
+#define WRITE_BINARY "we"
|
||||||
|
#else
|
||||||
|
#ifdef VMS /* VMS is very nonstandard */
|
||||||
|
#define READ_BINARY "rb", "ctx=stm"
|
||||||
|
#define WRITE_BINARY "wb", "ctx=stm"
|
||||||
|
#else /* standard ANSI-compliant case */
|
||||||
|
-#define READ_BINARY "rb"
|
||||||
|
-#define WRITE_BINARY "wb"
|
||||||
|
+#define READ_BINARY "rbe"
|
||||||
|
+#define WRITE_BINARY "wbe"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -439,7 +439,7 @@ main (int argc, char **argv)
|
||||||
|
keep_COM = 0;
|
||||||
|
} else if (keymatch(arg, "cfile", 2)) {
|
||||||
|
if (++argn >= argc) usage();
|
||||||
|
- if ((comment_file = fopen(argv[argn], "r")) == NULL) {
|
||||||
|
+ if ((comment_file = fopen(argv[argn], READ_BINARY)) == NULL) {
|
||||||
|
fprintf(stderr, "%s: can't open %s\n", progname, argv[argn]);
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
--- cdjpeg.h.orig
|
||||||
|
+++ cdjpeg.h
|
||||||
|
@@ -156,15 +156,15 @@ EXTERN(FILE *) write_stdout JPP((void));
|
||||||
|
/* miscellaneous useful macros */
|
||||||
|
|
||||||
|
#ifdef DONT_USE_B_MODE /* define mode parameters for fopen() */
|
||||||
|
-#define READ_BINARY "r"
|
||||||
|
-#define WRITE_BINARY "w"
|
||||||
|
+#define READ_BINARY "re"
|
||||||
|
+#define WRITE_BINARY "we"
|
||||||
|
#else
|
||||||
|
#ifdef VMS /* VMS is very nonstandard */
|
||||||
|
#define READ_BINARY "rb", "ctx=stm"
|
||||||
|
#define WRITE_BINARY "wb", "ctx=stm"
|
||||||
|
#else /* standard ANSI-compliant case */
|
||||||
|
-#define READ_BINARY "rb"
|
||||||
|
-#define WRITE_BINARY "wb"
|
||||||
|
+#define READ_BINARY "rbe"
|
||||||
|
+#define WRITE_BINARY "wbe"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
--- rdswitch.c.orig
|
||||||
|
+++ rdswitch.c
|
||||||
|
@@ -92,7 +92,7 @@ read_quant_tables (j_compress_ptr cinfo,
|
||||||
|
long val;
|
||||||
|
unsigned int table[DCTSIZE2];
|
||||||
|
|
||||||
|
- if ((fp = fopen(filename, "r")) == NULL) {
|
||||||
|
+ if ((fp = fopen(filename, READ_BINARY)) == NULL) {
|
||||||
|
fprintf(stderr, "Can't open table file %s\n", filename);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
@@ -190,7 +190,7 @@ read_scan_script (j_compress_ptr cinfo,
|
||||||
|
#define MAX_SCANS 100 /* quite arbitrary limit */
|
||||||
|
jpeg_scan_info scans[MAX_SCANS];
|
||||||
|
|
||||||
|
- if ((fp = fopen(filename, "r")) == NULL) {
|
||||||
|
+ if ((fp = fopen(filename, READ_BINARY)) == NULL) {
|
||||||
|
fprintf(stderr, "Can't open scan definition file %s\n", filename);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
--- bmp.c.orig
|
||||||
|
+++ bmp.c
|
||||||
|
@@ -257,7 +257,7 @@ int saveppm(char *filename, unsigned cha
|
||||||
|
FILE *fs=NULL; int retcode=0;
|
||||||
|
unsigned char *tempbuf=NULL;
|
||||||
|
|
||||||
|
- if((fs=fopen(filename, "wb"))==NULL) _throw(strerror(errno));
|
||||||
|
+ if((fs=fopen(filename, "wbe"))==NULL) _throw(strerror(errno));
|
||||||
|
if(fprintf(fs, "P6\n")<1) _throw("Write error");
|
||||||
|
if(fprintf(fs, "%d %d\n", w, h)<1) _throw("Write error");
|
||||||
|
if(fprintf(fs, "255\n")<1) _throw("Write error");
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Nov 12 22:54:58 UTC 2011 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- Open all file descriptors with O_CLOEXEC, extended description
|
||||||
|
in the patch file.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu May 19 14:44:56 CEST 2011 - pgajdos@suse.cz
|
Thu May 19 14:44:56 CEST 2011 - pgajdos@suse.cz
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package jpeg-turbo
|
# spec file for package libjpeg-turbo
|
||||||
#
|
#
|
||||||
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -33,7 +33,7 @@ Version: %{srcver}
|
|||||||
Release: 1
|
Release: 1
|
||||||
Summary: A MMX/SSE2 accelerated library for manipulating JPEG image files
|
Summary: A MMX/SSE2 accelerated library for manipulating JPEG image files
|
||||||
Url: http://sourceforge.net/projects/libjpeg-turbo
|
Url: http://sourceforge.net/projects/libjpeg-turbo
|
||||||
BuildRequires: nasm gcc-c++
|
BuildRequires: gcc-c++ nasm
|
||||||
Provides: jpeg = %{version}
|
Provides: jpeg = %{version}
|
||||||
Obsoletes: jpeg
|
Obsoletes: jpeg
|
||||||
Conflicts: jpeg%{major}
|
Conflicts: jpeg%{major}
|
||||||
@ -41,6 +41,7 @@ Source0: %{name}-%{version}.tar.bz2
|
|||||||
Source1: baselibs.conf
|
Source1: baselibs.conf
|
||||||
Patch0: %{name}-%{version}-int32.patch
|
Patch0: %{name}-%{version}-int32.patch
|
||||||
Patch1: %{name}-%{version}-tiff-ojpeg.patch
|
Patch1: %{name}-%{version}-tiff-ojpeg.patch
|
||||||
|
Patch2: libjpeg-ocloexec.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -49,10 +50,11 @@ JPEG images.
|
|||||||
|
|
||||||
%package -n libjpeg%{major}
|
%package -n libjpeg%{major}
|
||||||
|
|
||||||
|
|
||||||
License: BSD3c(or similar)
|
License: BSD3c(or similar)
|
||||||
Summary: The MMX/SSE accelerated JPEG compression/decompression library
|
Summary: The MMX/SSE accelerated JPEG compression/decompression library
|
||||||
Version: %{libver}
|
Version: %{libver}
|
||||||
|
|
||||||
|
|
||||||
Provides: libjpeg6 = %{version}
|
Provides: libjpeg6 = %{version}
|
||||||
Obsoletes: libjpeg6
|
Obsoletes: libjpeg6
|
||||||
Group: System/Libraries
|
Group: System/Libraries
|
||||||
@ -77,6 +79,8 @@ Authors:
|
|||||||
License: BSD3c(or similar)
|
License: BSD3c(or similar)
|
||||||
Summary: Development Tools for applications which will use the Libjpeg Library
|
Summary: Development Tools for applications which will use the Libjpeg Library
|
||||||
Version: %{libver}
|
Version: %{libver}
|
||||||
|
|
||||||
|
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Requires: libjpeg%{major} = %{version}
|
Requires: libjpeg%{major} = %{version}
|
||||||
Provides: libjpeg-devel = %{version}
|
Provides: libjpeg-devel = %{version}
|
||||||
@ -99,6 +103,7 @@ files using the libjpeg library.
|
|||||||
%setup -q
|
%setup -q
|
||||||
%patch0
|
%patch0
|
||||||
%patch1
|
%patch1
|
||||||
|
%patch2
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -fiv
|
autoreconf -fiv
|
||||||
|
Loading…
x
Reference in New Issue
Block a user