Accepting request 90163 from Base:System
- libmagic: use O_CLOEXEC where needed, as there is no warranty that calling applications will not fork() and we end up leaking file descriptors to their child processes. (forwarded request 90162 from elvigia) OBS-URL: https://build.opensuse.org/request/show/90163 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/file?expand=0&rev=54
This commit is contained in:
commit
3b8607f73b
62
file-ocloexec.patch
Normal file
62
file-ocloexec.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
--- src/compress.c.orig
|
||||||
|
+++ src/compress.c
|
||||||
|
@@ -256,7 +256,7 @@ file_pipe2file(struct magic_set *ms, int
|
||||||
|
errno = r;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
- tfd = mkstemp(buf);
|
||||||
|
+ tfd = mkostemp(buf, O_CLOEXEC);
|
||||||
|
te = errno;
|
||||||
|
(void)unlink(buf);
|
||||||
|
errno = te;
|
||||||
|
--- src/apprentice.c.orig
|
||||||
|
+++ src/apprentice.c
|
||||||
|
@@ -676,7 +676,7 @@ load_1(struct magic_set *ms, int action,
|
||||||
|
char *line = NULL;
|
||||||
|
ssize_t len;
|
||||||
|
|
||||||
|
- FILE *f = fopen(ms->file = fn, "r");
|
||||||
|
+ FILE *f = fopen(ms->file = fn, "re");
|
||||||
|
if (f == NULL) {
|
||||||
|
if (errno != ENOENT)
|
||||||
|
file_error(ms, errno, "cannot read magic file `%s'",
|
||||||
|
@@ -2226,7 +2226,7 @@ apprentice_map(struct magic_set *ms, str
|
||||||
|
if (dbname == NULL)
|
||||||
|
goto error2;
|
||||||
|
|
||||||
|
- if ((fd = open(dbname, O_RDONLY|O_BINARY)) == -1)
|
||||||
|
+ if ((fd = open(dbname, O_RDONLY|O_BINARY|O_CLOEXEC)) == -1)
|
||||||
|
goto error2;
|
||||||
|
|
||||||
|
if (fstat(fd, &st) == -1) {
|
||||||
|
@@ -2324,7 +2324,7 @@ apprentice_compile(struct magic_set *ms,
|
||||||
|
if (dbname == NULL)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
- if ((fd = open(dbname, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY, 0644)) == -1) {
|
||||||
|
+ if ((fd = open(dbname, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY|O_CLOEXEC, 0644)) == -1) {
|
||||||
|
file_error(ms, errno, "cannot open `%s'", dbname);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
--- src/magic.c.orig
|
||||||
|
+++ src/magic.c
|
||||||
|
@@ -411,7 +411,7 @@ file_or_fd(struct magic_set *ms, const c
|
||||||
|
if (fstat(fd, &sb) == 0 && S_ISFIFO(sb.st_mode))
|
||||||
|
ispipe = 1;
|
||||||
|
} else {
|
||||||
|
- int flags = O_RDONLY|O_BINARY;
|
||||||
|
+ int flags = O_RDONLY|O_BINARY|O_CLOEXEC;
|
||||||
|
|
||||||
|
if (stat(inname, &sb) == 0 && S_ISFIFO(sb.st_mode)) {
|
||||||
|
#ifdef O_NONBLOCK
|
||||||
|
--- src/file.c.orig
|
||||||
|
+++ src/file.c
|
||||||
|
@@ -385,7 +385,7 @@ unwrap(struct magic_set *ms, const char
|
||||||
|
f = stdin;
|
||||||
|
wid = 1;
|
||||||
|
} else {
|
||||||
|
- if ((f = fopen(fn, "r")) == NULL) {
|
||||||
|
+ if ((f = fopen(fn, "re")) == NULL) {
|
||||||
|
(void)fprintf(stderr, "%s: Cannot open `%s' (%s).\n",
|
||||||
|
progname, fn, strerror(errno));
|
||||||
|
return 1;
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Nov 5 18:37:25 UTC 2011 - crrodriguez@opensuse.org
|
||||||
|
|
||||||
|
- libmagic: use O_CLOEXEC where needed, as there is no warranty
|
||||||
|
that calling applications will not fork() and we end up leaking
|
||||||
|
file descriptors to their child processes.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sat Oct 1 05:39:05 UTC 2011 - coolo@suse.com
|
Sat Oct 1 05:39:05 UTC 2011 - coolo@suse.com
|
||||||
|
|
||||||
|
@ -58,6 +58,7 @@ Patch29: file-5.07-llvm.dif
|
|||||||
Patch30: file-5.07-visibility.patch
|
Patch30: file-5.07-visibility.patch
|
||||||
Patch31: file-5.07-biorad.dif
|
Patch31: file-5.07-biorad.dif
|
||||||
Patch32: file-5.07-clicfs.dif
|
Patch32: file-5.07-clicfs.dif
|
||||||
|
Patch33: file-ocloexec.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
%global _sysconfdir /etc
|
%global _sysconfdir /etc
|
||||||
%global _miscdir %{_datadir}/misc
|
%global _miscdir %{_datadir}/misc
|
||||||
@ -107,6 +108,7 @@ to develop applications that require the magic "file" interface.
|
|||||||
%patch31 -p0 -b .biorad
|
%patch31 -p0 -b .biorad
|
||||||
%patch32 -p0 -b .clicfs
|
%patch32 -p0 -b .clicfs
|
||||||
%patch -b .0
|
%patch -b .0
|
||||||
|
%patch33
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export LANG=POSIX
|
export LANG=POSIX
|
||||||
@ -115,7 +117,7 @@ rm -f Magdir/*,v Magdir/*~
|
|||||||
rm -f ltcf-c.sh ltconfig ltmain.sh
|
rm -f ltcf-c.sh ltconfig ltmain.sh
|
||||||
autoreconf -fiv
|
autoreconf -fiv
|
||||||
CFLAGS="$RPM_OPT_FLAGS -DHOWMANY=69632"
|
CFLAGS="$RPM_OPT_FLAGS -DHOWMANY=69632"
|
||||||
%configure --datadir=%{_miscdir} --disable-static --with-pic --enable-fsect-man5
|
%configure --disable-silent-rules --datadir=%{_miscdir} --disable-static --with-pic --enable-fsect-man5
|
||||||
%{__make} %{?_smp_mflags} pkgdatadir='$(datadir)'
|
%{__make} %{?_smp_mflags} pkgdatadir='$(datadir)'
|
||||||
%if 0%{?build_python_bindings:1}
|
%if 0%{?build_python_bindings:1}
|
||||||
pushd python
|
pushd python
|
||||||
|
Loading…
Reference in New Issue
Block a user