Hello community, here is the log from the commit of package file for openSUSE:Factory checked in at 2011-11-07 14:14:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/file (Old) and /work/SRC/openSUSE:Factory/.file.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "file", Maintainer is "wer...@suse.com" Changes: -------- --- /work/SRC/openSUSE:Factory/file/file.changes 2011-10-03 09:17:49.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.file.new/file.changes 2011-11-07 14:14:52.000000000 +0100 @@ -1,0 +2,7 @@ +Sat Nov 5 18:37:25 UTC 2011 - crrodrig...@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. + +------------------------------------------------------------------- New: ---- file-ocloexec.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ file.spec ++++++ --- /var/tmp/diff_new_pack.kBw5zj/_old 2011-11-07 14:14:53.000000000 +0100 +++ /var/tmp/diff_new_pack.kBw5zj/_new 2011-11-07 14:14:53.000000000 +0100 @@ -58,6 +58,7 @@ Patch30: file-5.07-visibility.patch Patch31: file-5.07-biorad.dif Patch32: file-5.07-clicfs.dif +Patch33: file-ocloexec.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %global _sysconfdir /etc %global _miscdir %{_datadir}/misc @@ -107,6 +108,7 @@ %patch31 -p0 -b .biorad %patch32 -p0 -b .clicfs %patch -b .0 +%patch33 %build export LANG=POSIX @@ -115,7 +117,7 @@ rm -f ltcf-c.sh ltconfig ltmain.sh autoreconf -fiv 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)' %if 0%{?build_python_bindings:1} pushd python ++++++ file-ocloexec.patch ++++++ --- 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; -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org