pacman/lib/libalpm
Xavier Chantry 36863b968f runscriptlet : Flush open fds before fork() to avoid cloning buffers
This is a bug I noticed 2 years ago :
http://www.nabble.com/Re%3A-logging-output-crazy-to11437357.html#a11479679

I thought I fixed it with 57d77eab32

But the bug was still here. Reading man fork, this part caught my attention:

*  The child inherits copies of the parent's set  of  open  file
descriptors.  Each  file descriptor  in  the  child refers to the same open
file description (see open(2)) as the corresponding file descriptor in the
parent.  This means that the two descriptors  share open  file  status
flags, current file offset, and signal-driven I/O attributes (see the
description of F_SETOWN and F_SETSIG in fcntl(2)).

Since the open file descriptors are inherited, it is probably a good idea to
flush them before forking.

Signed-off-by: Xavier Chantry <shiningxc@gmail.com>
Signed-off-by: Dan McGee <dan@archlinux.org>
2009-03-15 11:40:49 -05:00
..
po Add new Kazakh translation 2009-02-24 08:24:47 -06:00
.gitignore Remove unnecessary entries from .gitignore files 2007-07-16 16:49:28 -04:00
add.c Merge branch 'maint' 2009-01-18 13:48:48 -06:00
add.h Update GNU GPL boilerplate and copyright dates 2007-12-10 22:55:39 -06:00
alpm.c Remove unnecessary header file, move one macro to util.c 2008-04-06 20:20:20 -05:00
alpm.h libalpm: remove from_md5 and to_md5 from pmdelta_t 2009-02-28 15:33:46 -06:00
alpm_list.c alpm_list_remove treat NULL needle as "nothing" 2008-07-17 20:20:13 -05:00
alpm_list.h Cleanup usages of alpm_list_find and alpm_list_remove. 2008-05-13 15:49:02 -05:00
backup.c memleak fix: ensure backup fname isn't lost if unused 2008-03-23 16:55:52 -05:00
backup.h Update GNU GPL boilerplate and copyright dates 2007-12-10 22:55:39 -06:00
be_files.c Delay the creation of local and sync db dir. 2009-01-20 14:07:15 +01:00
be_package.c Don't display filename on -Qip operation. 2008-06-04 16:25:31 -05:00
cache.c db->pkgcache_loaded and db->grpcache_loaded 2009-01-12 23:59:37 -06:00
cache.h Update GNU GPL boilerplate and copyright dates 2007-12-10 22:55:39 -06:00
conflict.c Merge branch 'maint' 2008-10-12 21:36:45 -05:00
conflict.h New _alpm_conflict_dup function 2008-01-27 11:54:25 -06:00
db.c Delay the creation of local and sync db dir. 2009-01-20 14:07:15 +01:00
db.h Remove some db abstraction crap. 2009-01-20 14:04:54 +01:00
delta.c libalpm: remove from_md5 and to_md5 from pmdelta_t 2009-02-28 15:33:46 -06:00
delta.h libalpm: remove from_md5 and to_md5 from pmdelta_t 2009-02-28 15:33:46 -06:00
deps.c Don't prompt the user for unignore of IgnorePkg/IgnoreGroup packages 2009-02-23 20:37:14 -06:00
deps.h Don't prompt the user for unignore of IgnorePkg/IgnoreGroup packages 2009-02-23 20:37:14 -06:00
dload.c Remove libdownload support and fix libfetch one. 2009-01-12 22:40:15 -06:00
dload.h Remove unnecessary import in dload.h 2008-04-10 20:53:28 -05:00
error.c HoldPkg rework 2009-01-12 22:44:00 -06:00
graph.h Use correct C type for file sizes 2008-06-04 15:38:47 -05:00
group.c Cleanup usages of alpm_list_find and alpm_list_remove. 2008-05-13 15:49:02 -05:00
group.h Cleanup usages of alpm_list_find and alpm_list_remove. 2008-05-13 15:49:02 -05:00
handle.c HoldPkg rework 2009-01-12 22:44:00 -06:00
handle.h HoldPkg rework 2009-01-12 22:44:00 -06:00
log.c Remove unnecessary header file, move one macro to util.c 2008-04-06 20:20:20 -05:00
log.h Update GNU GPL boilerplate and copyright dates 2007-12-10 22:55:39 -06:00
Makefile.am Refactor pkg_load/parse_descfile into a new backend file 2008-05-11 20:07:55 -05:00
md5.c libalpm/md5: Fix license header 2008-06-03 21:31:31 -05:00
md5.h libalpm/md5: Fix license header 2008-06-03 21:31:31 -05:00
package.c Merge branch 'maint' 2008-10-12 21:36:45 -05:00
package.h Use correct C type for file sizes 2008-06-04 15:38:47 -05:00
remove.c HoldPkg rework 2009-01-12 22:44:00 -06:00
remove.h Update GNU GPL boilerplate and copyright dates 2007-12-10 22:55:39 -06:00
sync.c libalpm: remove from_md5 and to_md5 from pmdelta_t 2009-02-28 15:33:46 -06:00
sync.h -Qu rework 2008-10-31 19:46:13 -05:00
trans.c runscriptlet : Flush open fds before fork() to avoid cloning buffers 2009-03-15 11:40:49 -05:00
trans.h -Qu rework 2008-10-31 19:46:13 -05:00
util.c alpm_unpack : change prefix handling to workaround FS#12148. 2009-01-20 14:03:46 +01:00
util.h Remove unused strverscmp substitute 2008-07-24 22:16:28 -05:00