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
|
||||
|
||||
|
@ -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
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -33,7 +33,7 @@ Version: %{srcver}
|
||||
Release: 1
|
||||
Summary: A MMX/SSE2 accelerated library for manipulating JPEG image files
|
||||
Url: http://sourceforge.net/projects/libjpeg-turbo
|
||||
BuildRequires: nasm gcc-c++
|
||||
BuildRequires: gcc-c++ nasm
|
||||
Provides: jpeg = %{version}
|
||||
Obsoletes: jpeg
|
||||
Conflicts: jpeg%{major}
|
||||
@ -41,6 +41,7 @@ Source0: %{name}-%{version}.tar.bz2
|
||||
Source1: baselibs.conf
|
||||
Patch0: %{name}-%{version}-int32.patch
|
||||
Patch1: %{name}-%{version}-tiff-ojpeg.patch
|
||||
Patch2: libjpeg-ocloexec.patch
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
@ -49,10 +50,11 @@ JPEG images.
|
||||
|
||||
%package -n libjpeg%{major}
|
||||
|
||||
|
||||
License: BSD3c(or similar)
|
||||
Summary: The MMX/SSE accelerated JPEG compression/decompression library
|
||||
Version: %{libver}
|
||||
|
||||
|
||||
Provides: libjpeg6 = %{version}
|
||||
Obsoletes: libjpeg6
|
||||
Group: System/Libraries
|
||||
@ -77,6 +79,8 @@ Authors:
|
||||
License: BSD3c(or similar)
|
||||
Summary: Development Tools for applications which will use the Libjpeg Library
|
||||
Version: %{libver}
|
||||
|
||||
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: libjpeg%{major} = %{version}
|
||||
Provides: libjpeg-devel = %{version}
|
||||
@ -99,6 +103,7 @@ files using the libjpeg library.
|
||||
%setup -q
|
||||
%patch0
|
||||
%patch1
|
||||
%patch2
|
||||
|
||||
%build
|
||||
autoreconf -fiv
|
||||
|
Loading…
x
Reference in New Issue
Block a user